home *** CD-ROM | disk | FTP | other *** search
MacBinary | 1995-10-17 | 39.5 KB | [TEXT/MPS ] |
open in:
MacOS 8.1
|
Win98
|
DOS
browse contents |
view JSON data
|
view as text
This file was processed as: MacBinary
(archive/macBinary).
Confidence | Program | Detection | Match Type | Support
|
---|
1%
| dexvert
| MS-DOS Code Page Info (other/dosCodePage)
| ext
| Unsupported |
1%
| dexvert
| MacBinary (archive/macBinary)
| fallback
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| MacBinary II, inited, Tue Oct 17 16:16:01 1995, modified Tue Oct 17 16:16:01 1995, creator 'MPS ', type ASCII, 39595 bytes "List.cp" , at 0x9b2b 605 bytes resource
| default (weak)
| |
99%
| file
| data
| default
| |
74%
| TrID
| Macintosh plain text (MacBinary)
| default
| |
25%
| TrID
| MacBinary 2
| default (weak)
| |
100%
| dearkID
| deark: macbinary
| default
| |
100%
| siegfried
| fmt/1762 MacBinary (II)
| default
| |
100%
| lsar
| MacBinary
| default
|
|
id metadata |
---|
key | value |
---|
macFileType | [TEXT] |
macFileCreator | [MPS ] |
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 07 4c 69 73 74 2e 63 | 70 00 00 00 00 00 00 00 |..List.c|p.......|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 4d 50 53 | 20 01 00 00 00 00 00 00 |.TEXTMPS| .......|
|00000050| 00 00 00 00 00 9a ab 00 | 00 02 5d ac a9 bf 81 ac |........|..].....|
|00000060| a9 bf 81 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 42 f2 00 00 |........|....B...|
|00000080| 2f 2a 0d 09 46 69 6c 65 | 3a 09 09 4c 69 73 74 2e |/*..File|:..List.|
|00000090| 63 0d 0d 09 43 6f 6e 74 | 61 69 6e 73 3a 09 61 20 |c...Cont|ains:.a |
|000000a0| 67 65 6e 65 72 61 6c 20 | 75 6e 73 65 71 75 65 6e |general |unsequen|
|000000b0| 63 65 64 20 63 6f 6e 74 | 61 69 6e 65 72 20 66 6f |ced cont|ainer fo|
|000000c0| 72 20 6f 62 6a 65 63 74 | 73 2e 0d 0d 09 57 72 69 |r object|s....Wri|
|000000d0| 74 74 65 6e 20 62 79 3a | 09 42 72 75 63 65 20 48 |tten by:|.Bruce H|
|000000e0| 6f 72 6e 2c 20 53 74 65 | 76 65 20 43 61 70 70 73 |orn, Ste|ve Capps|
|000000f0| 2c 20 4c 61 72 72 79 20 | 4b 65 6e 79 6f 6e 2c 20 |, Larry |Kenyon, |
|00000100| 4a 6f 68 6e 20 4d 65 69 | 65 72 2c 20 73 63 6f 74 |John Mei|er, scot|
|00000110| 74 20 64 6f 75 67 6c 61 | 73 73 2c 20 44 61 72 69 |t dougla|ss, Dari|
|00000120| 6e 20 41 64 6c 65 72 2c | 0d 09 09 09 09 50 61 75 |n Adler,|.....Pau|
|00000130| 6c 20 4d 65 72 63 65 72 | 2c 20 42 72 79 61 6e 20 |l Mercer|, Bryan |
|00000140| 53 74 65 61 72 6e 73 2c | 20 44 61 76 65 20 4f 77 |Stearns,| Dave Ow|
|00000150| 65 6e 73 0d 09 09 09 09 | 0d 09 09 09 09 41 6e 64 |ens.....|.....And|
|00000160| 79 20 4e 69 63 68 6f 6c | 61 73 2c 20 54 6f 6d 20 |y Nichol|as, Tom |
|00000170| 43 6f 6e 72 61 64 2c 20 | 43 68 72 69 73 20 42 69 |Conrad, |Chris Bi|
|00000180| 6e 67 68 61 6d 0d 0d 09 | 43 6f 70 79 72 69 67 68 |ngham...|Copyrigh|
|00000190| 74 3a 09 a9 20 31 39 38 | 38 2d 31 39 39 30 2c 20 |t:.. 198|8-1990, |
|000001a0| 31 39 39 33 2d 31 39 39 | 35 20 62 79 20 41 70 70 |1993-199|5 by App|
|000001b0| 6c 65 20 43 6f 6d 70 75 | 74 65 72 2c 20 49 6e 63 |le Compu|ter, Inc|
|000001c0| 2e 2c 20 61 6c 6c 20 72 | 69 67 68 74 73 20 72 65 |., all r|ights re|
|000001d0| 73 65 72 76 65 64 2e 0d | 0d 09 09 20 3c 36 3e 09 |served..|... <6>.|
|000001e0| 20 36 2f 31 33 2f 39 35 | 09 61 6e 64 79 09 0d 2a | 6/13/95|.andy..*|
|000001f0| 2f 0d 0d 23 69 66 64 65 | 66 20 4d 57 54 52 41 43 |/..#ifde|f MWTRAC|
|00000200| 45 42 41 43 4b 54 41 42 | 4c 45 53 0d 23 70 72 61 |EBACKTAB|LES.#pra|
|00000210| 67 6d 61 20 74 72 61 63 | 65 62 61 63 6b 20 6f 6e |gma trac|eback on|
|00000220| 0d 23 65 6e 64 69 66 0d | 0d 23 69 6e 63 6c 75 64 |.#endif.|.#includ|
|00000230| 65 20 22 4c 69 73 74 2e | 68 22 0d 23 69 6e 63 6c |e "List.|h".#incl|
|00000240| 75 64 65 20 22 45 78 63 | 65 70 74 69 6f 6e 73 2e |ude "Exc|eptions.|
|00000250| 68 22 0d 23 69 6e 63 6c | 75 64 65 20 22 44 65 62 |h".#incl|ude "Deb|
|00000260| 75 67 2e 68 22 0d 0d 2f | 2f 0d 2f 2f 20 46 6f 72 |ug.h"../|/.// For|
|00000270| 20 42 6c 6f 63 6b 4d 6f | 76 65 44 61 74 61 0d 2f | BlockMo|veData./|
|00000280| 2f 0d 23 69 6e 63 6c 75 | 64 65 20 3c 4d 65 6d 6f |/.#inclu|de <Memo|
|00000290| 72 79 2e 68 3e 0d 0d 0d | 2f 2f 3d 3d 3d 3d 3d 3d |ry.h>...|//======|
|000002a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000002f0| 3d 3d 0d 2f 2f 0d 2f 2f | 20 43 4c 41 53 53 20 54 |==.//.//| CLASS T|
|00000300| 4c 69 73 74 0d 2f 2f 0d | 2f 2f 09 41 20 54 4c 69 |List.//.|//.A TLi|
|00000310| 73 74 20 69 73 20 61 6e | 20 61 72 72 61 79 20 6f |st is an| array o|
|00000320| 66 20 76 6f 69 64 2a d5 | 73 2e 20 20 54 68 65 20 |f void*.|s. The |
|00000330| 61 72 72 61 79 20 69 73 | 20 73 74 6f 72 65 64 20 |array is| stored |
|00000340| 69 6e 20 61 20 48 61 6e | 64 6c 65 2e 20 20 54 68 |in a Han|dle. Th|
|00000350| 65 20 68 61 6e 64 6c 65 | 0d 2f 2f 09 63 61 6e 20 |e handle|.//.can |
|00000360| 68 61 76 65 20 65 78 74 | 72 61 20 73 70 61 63 65 |have ext|ra space|
|00000370| 20 61 74 20 74 68 65 20 | 65 6e 64 2e 20 20 54 68 | at the |end. Th|
|00000380| 65 20 68 61 6e 64 6c 65 | 20 73 69 7a 65 20 28 69 |e handle| size (i|
|00000390| 6e 20 75 6e 69 74 73 20 | 6f 66 20 70 6f 69 6e 74 |n units |of point|
|000003a0| 65 72 73 2c 20 6e 6f 74 | 0d 2f 2f 09 62 79 74 65 |ers, not|.//.byte|
|000003b0| 73 29 20 69 73 20 73 74 | 6f 72 65 64 20 69 6e 20 |s) is st|ored in |
|000003c0| 66 53 69 7a 65 20 73 6f | 20 74 68 61 74 20 77 65 |fSize so| that we|
|000003d0| 20 64 6f 6e d5 74 20 68 | 61 76 65 20 74 6f 20 63 | don.t h|ave to c|
|000003e0| 61 6c 6c 20 47 65 74 48 | 61 6e 64 6c 65 53 69 7a |all GetH|andleSiz|
|000003f0| 65 20 61 6c 6c 20 74 68 | 65 0d 2f 2f 09 74 69 6d |e all th|e.//.tim|
|00000400| 65 2c 20 61 6e 64 20 69 | 6e 63 72 65 61 73 65 73 |e, and i|ncreases|
|00000410| 20 73 69 7a 65 6f 66 28 | 54 4c 69 73 74 29 20 66 | sizeof(|TList) f|
|00000420| 72 6f 6d 20 36 20 74 6f | 20 38 20 62 79 74 65 73 |rom 6 to| 8 bytes|
|00000430| 20 28 77 68 69 6c 65 20 | 64 65 62 75 67 67 69 6e | (while |debuggin|
|00000440| 67 29 2e 20 20 54 68 69 | 73 0d 2f 2f 09 63 61 6e |g). Thi|s.//.can|
|00000450| 20 62 65 20 72 61 74 69 | 6f 6e 61 6c 69 7a 65 64 | be rati|onalized|
|00000460| 20 61 77 61 79 20 62 79 | 20 62 65 6c 65 76 69 6e | away by| belevin|
|00000470| 67 20 74 68 61 74 20 74 | 68 65 20 6d 65 6d 6f 72 |g that t|he memor|
|00000480| 79 20 6d 61 6e 61 67 65 | 72 20 77 69 6c 6c 20 61 |y manage|r will a|
|00000490| 6c 6c 6f 63 61 74 65 20 | 74 68 65 0d 2f 2f 09 73 |llocate |the.//.s|
|000004a0| 61 6d 65 20 61 6d 6f 75 | 6e 74 20 6f 66 20 6d 65 |ame amou|nt of me|
|000004b0| 6d 6f 72 79 20 77 68 65 | 74 68 65 72 20 79 6f 75 |mory whe|ther you|
|000004c0| 20 61 73 6b 20 66 6f 72 | 20 36 20 62 79 74 65 73 | ask for| 6 bytes|
|000004d0| 20 6f 72 20 38 2e 0d 2f | 2f 0d 2f 2f 09 57 68 69 | or 8../|/.//.Whi|
|000004e0| 6c 65 20 64 65 62 75 67 | 67 69 6e 67 20 61 20 6c |le debug|ging a l|
|000004f0| 69 73 74 20 63 6f 6e 74 | 61 69 6e 73 20 61 20 63 |ist cont|ains a c|
|00000500| 6f 75 6e 74 20 6f 66 20 | 68 6f 77 20 6d 61 6e 79 |ount of |how many|
|00000510| 20 54 4c 6f 6f 70 73 20 | 61 72 65 20 61 63 74 69 | TLoops |are acti|
|00000520| 76 65 20 6f 6e 20 69 74 | 20 73 6f 0d 2f 2f 09 74 |ve on it| so.//.t|
|00000530| 68 61 74 20 77 65 20 63 | 61 6e 20 70 72 65 76 65 |hat we c|an preve|
|00000540| 6e 74 20 41 64 64 73 20 | 61 6e 64 20 52 65 6d 6f |nt Adds |and Remo|
|00000550| 76 65 73 2c 20 65 74 63 | 2e 0d 2f 2f 0d 2f 2f 3d |ves, etc|..//.//=|
|00000560| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000570| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000580| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00000590| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000005a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000005b0| 3d 3d 3d 3d 3d 3d 3d 0d | 0d 23 64 65 66 69 6e 65 |=======.|.#define|
|000005c0| 20 49 4e 48 45 52 49 54 | 45 44 0d 0d 23 70 72 61 | INHERIT|ED..#pra|
|000005d0| 67 6d 61 20 73 65 67 6d | 65 6e 74 20 4c 69 73 74 |gma segm|ent List|
|000005e0| 0d 0d 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..//----|--------|
|000005f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000610| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000620| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000630| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 2f 2f 20 |--------|----.// |
|00000640| 54 4c 69 73 74 3a 3a 7e | 54 4c 69 73 74 3a 20 0d |TList::~|TList: .|
|00000650| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00000660| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000006a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 54 4c 69 73 74 |--------|--.TList|
|000006b0| 3a 3a 7e 54 4c 69 73 74 | 28 29 0d 09 7b 0d 09 41 |::~TList|()..{..A|
|000006c0| 53 53 45 52 54 28 66 4e | 75 6d 4c 6f 6f 70 73 20 |SSERT(fN|umLoops |
|000006d0| 3d 3d 20 30 29 3b 0d 0d | 09 2f 2f 0d 09 2f 2f 20 |== 0);..|.//..// |
|000006e0| 49 6e 66 6f 72 6d 20 74 | 68 65 20 72 65 6d 6f 76 |Inform t|he remov|
|000006f0| 65 64 20 69 74 65 6d 73 | 20 74 68 61 74 20 77 65 |ed items| that we|
|00000700| 20 6e 6f 20 6c 6f 6e 67 | 65 72 20 63 61 72 65 20 | no long|er care |
|00000710| 61 62 6f 75 74 20 74 68 | 65 69 72 20 64 65 6c 65 |about th|eir dele|
|00000720| 74 65 20 6e 6f 74 69 66 | 69 63 61 74 69 6f 6e 2e |te notif|ication.|
|00000730| 0d 09 2f 2f 20 4e 4f 54 | 45 3a 20 4f 6e 6c 79 20 |..// NOT|E: Only |
|00000740| 75 73 65 20 64 65 6c 65 | 74 65 20 6e 6f 74 69 66 |use dele|te notif|
|00000750| 69 63 61 74 69 6f 6e 20 | 66 6f 72 20 54 4f 62 6a |ication |for TObj|
|00000760| 65 63 74 4c 69 73 74 73 | 21 0d 09 2f 2f 20 28 44 |ectLists|!..// (D|
|00000770| 75 70 6c 69 63 61 74 65 | 20 6f 66 20 63 6f 64 65 |uplicate| of code|
|00000780| 20 69 6e 20 52 65 6d 6f | 76 65 41 6c 6c 4e 6f 54 | in Remo|veAllNoT|
|00000790| 72 69 6d 29 0d 09 2f 2f | 0d 09 69 66 20 28 66 55 |rim)..//|..if (fU|
|000007a0| 73 65 44 65 6c 65 74 65 | 4e 6f 74 69 66 69 63 61 |seDelete|Notifica|
|000007b0| 74 69 6f 6e 29 0d 09 09 | 7b 0d 09 09 46 4f 52 45 |tion)...|{...FORE|
|000007c0| 41 43 48 49 54 45 4d 28 | 74 68 69 73 29 0d 09 09 |ACHITEM(|this)...|
|000007d0| 09 28 28 54 4f 62 6a 65 | 63 74 2a 29 69 74 65 6d |.((TObje|ct*)item|
|000007e0| 29 2d 3e 52 65 67 69 73 | 74 65 72 46 6f 72 44 65 |)->Regis|terForDe|
|000007f0| 6c 65 74 65 4e 6f 74 69 | 66 69 63 61 74 69 6f 6e |leteNoti|fication|
|00000800| 28 74 68 69 73 2c 20 6b | 55 6e 72 65 67 69 73 74 |(this, k|Unregist|
|00000810| 65 72 46 6f 72 44 65 6c | 65 74 65 4e 6f 74 69 66 |erForDel|eteNotif|
|00000820| 69 63 61 74 69 6f 6e 29 | 3b 0d 09 09 7d 0d 09 7d |ication)|;...}..}|
|00000830| 20 0d 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | ..//---|--------|
|00000840| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000850| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 2f 2f |--------|-----.//|
|00000890| 20 54 4c 69 73 74 3a 3a | 4d 61 6b 65 3a 20 0d 2f | TList::|Make: ./|
|000008a0| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|000008b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000008f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 54 4c 69 73 74 2a |--------|-.TList*|
|00000900| 20 54 4c 69 73 74 3a 3a | 4d 61 6b 65 28 75 6e 73 | TList::|Make(uns|
|00000910| 69 67 6e 65 64 20 6c 6f | 6e 67 20 67 75 65 73 73 |igned lo|ng guess|
|00000920| 43 6f 75 6e 74 2c 20 42 | 6f 6f 6c 65 61 6e 20 2f |Count, B|oolean /|
|00000930| 2a 20 66 6f 72 63 65 53 | 79 73 74 65 6d 48 65 61 |* forceS|ystemHea|
|00000940| 70 20 2a 2f 29 0d 09 7b | 0d 09 54 4c 69 73 74 2a |p */)..{|..TList*|
|00000950| 20 6e 65 77 4c 69 73 74 | 20 3d 20 6e 65 77 20 54 | newList| = new T|
|00000960| 4c 69 73 74 3b 0d 0d 09 | 6e 65 77 4c 69 73 74 2d |List;...|newList-|
|00000970| 3e 66 4f 62 6a 65 63 74 | 42 6c 6f 63 6b 43 61 63 |>fObject|BlockCac|
|00000980| 68 65 2e 43 72 65 61 74 | 65 28 67 75 65 73 73 43 |he.Creat|e(guessC|
|00000990| 6f 75 6e 74 20 3c 3c 20 | 32 29 3b 0d 0d 09 6e 65 |ount << |2);...ne|
|000009a0| 77 4c 69 73 74 2d 3e 66 | 42 79 74 65 43 6f 75 6e |wList->f|ByteCoun|
|000009b0| 74 20 3d 20 30 3b 0d 09 | 6e 65 77 4c 69 73 74 2d |t = 0;..|newList-|
|000009c0| 3e 66 4c 6f 63 6b 65 64 | 20 3d 20 66 61 6c 73 65 |>fLocked| = false|
|000009d0| 3b 0d 09 6e 65 77 4c 69 | 73 74 2d 3e 66 55 73 65 |;..newLi|st->fUse|
|000009e0| 44 65 6c 65 74 65 4e 6f | 74 69 66 69 63 61 74 69 |DeleteNo|tificati|
|000009f0| 6f 6e 20 3d 20 66 61 6c | 73 65 3b 0d 0d 23 69 66 |on = fal|se;..#if|
|00000a00| 64 65 66 20 44 45 42 55 | 47 0d 09 6e 65 77 4c 69 |def DEBU|G..newLi|
|00000a10| 73 74 2d 3e 66 53 68 6f | 75 6c 64 4e 65 76 65 72 |st->fSho|uldNever|
|00000a20| 53 65 65 44 65 6c 65 74 | 69 6f 6e 20 3d 20 66 61 |SeeDelet|ion = fa|
|00000a30| 6c 73 65 3b 0d 09 6e 65 | 77 4c 69 73 74 2d 3e 66 |lse;..ne|wList->f|
|00000a40| 4e 75 6d 4c 6f 6f 70 73 | 20 3d 20 30 3b 0d 09 6e |NumLoops| = 0;..n|
|00000a50| 65 77 4c 69 73 74 2d 3e | 66 53 69 67 6e 61 74 75 |ewList->|fSignatu|
|00000a60| 72 65 20 3d 20 27 4c 69 | 73 74 27 3b 0d 23 65 6e |re = 'Li|st';.#en|
|00000a70| 64 69 66 0d 0d 09 72 65 | 74 75 72 6e 20 6e 65 77 |dif...re|turn new|
|00000a80| 4c 69 73 74 3b 0d 09 7d | 0d 09 0d 0d 0d 2f 2f 2d |List;..}|.....//-|
|00000a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ac0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ad0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ae0| 2d 2d 2d 2d 2d 2d 2d 0d | 2f 2f 20 54 4c 69 73 74 |-------.|// TList|
|00000af0| 3a 3a 43 6c 6f 6e 65 3a | 20 0d 2f 2f 20 43 72 65 |::Clone:| .// Cre|
|00000b00| 61 74 65 20 61 20 6e 65 | 77 20 6c 69 73 74 20 74 |ate a ne|w list t|
|00000b10| 68 65 20 73 61 6d 65 20 | 73 69 7a 65 20 61 73 20 |he same |size as |
|00000b20| 75 73 20 61 6e 64 20 63 | 6f 70 79 20 6f 75 72 20 |us and c|opy our |
|00000b30| 64 61 74 61 20 69 6e 74 | 6f 20 69 74 2e 20 20 49 |data int|o it. I|
|00000b40| 66 20 66 6f 72 63 65 43 | 72 65 61 74 65 20 69 73 |f forceC|reate is|
|00000b50| 0d 2f 2f 20 66 61 6c 73 | 65 2c 20 64 6f 6e d5 74 |.// fals|e, don.t|
|00000b60| 20 63 72 65 61 74 65 20 | 61 20 6e 65 77 20 6c 69 | create |a new li|
|00000b70| 73 74 20 69 66 20 74 68 | 65 20 6f 72 69 67 69 6e |st if th|e origin|
|00000b80| 61 6c 20 69 73 20 65 6d | 70 74 79 2e 20 20 49 66 |al is em|pty. If|
|00000b90| 20 66 6f 72 63 65 43 72 | 65 61 74 65 20 69 73 20 | forceCr|eate is |
|00000ba0| 74 72 75 65 2c 0d 2f 2f | 20 61 6c 77 61 79 73 20 |true,.//| always |
|00000bb0| 63 72 65 61 74 65 20 61 | 20 6e 65 77 20 6c 69 73 |create a| new lis|
|00000bc0| 74 20 6e 6f 20 6d 61 74 | 74 65 72 20 77 68 61 74 |t no mat|ter what|
|00000bd0| 2e 20 20 4e 6f 74 65 20 | 74 68 61 74 20 69 66 20 |. Note |that if |
|00000be0| 61 20 6e 65 77 20 6c 69 | 73 74 20 69 73 20 63 72 |a new li|st is cr|
|00000bf0| 65 61 74 65 64 2c 20 69 | 74 20 77 69 6c 6c 0d 2f |eated, i|t will./|
|00000c00| 2f 20 62 65 20 65 78 61 | 63 74 6c 79 20 74 68 65 |/ be exa|ctly the|
|00000c10| 20 73 61 6d 65 20 73 69 | 7a 65 20 61 73 20 74 68 | same si|ze as th|
|00000c20| 65 20 6f 72 69 67 69 6e | 61 6c 20 28 66 6f 72 20 |e origin|al (for |
|00000c30| 65 78 61 6d 70 6c 65 2c | 20 69 66 20 74 68 65 20 |example,| if the |
|00000c40| 6f 72 69 67 69 6e 61 6c | 20 6c 69 73 74 20 63 6f |original| list co|
|00000c50| 6e 74 61 69 6e 73 0d 2f | 2f 20 34 20 69 74 65 6d |ntains./|/ 4 item|
|00000c60| 73 20 62 75 74 20 68 61 | 73 20 61 20 43 61 63 68 |s but ha|s a Cach|
|00000c70| 65 20 62 69 67 20 65 6e | 6f 75 67 68 20 66 6f 72 |e big en|ough for|
|00000c80| 20 31 32 20 69 74 65 6d | 73 2c 20 73 6f 20 77 69 | 12 item|s, so wi|
|00000c90| 6c 6c 20 74 68 65 20 63 | 6c 6f 6e 65 29 2e 0d 2f |ll the c|lone)../|
|00000ca0| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00000cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00000cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 54 4c 69 73 74 2a |--------|-.TList*|
|00000d00| 20 54 4c 69 73 74 3a 3a | 43 6c 6f 6e 65 28 42 6f | TList::|Clone(Bo|
|00000d10| 6f 6c 65 61 6e 20 66 6f | 72 63 65 43 72 65 61 74 |olean fo|rceCreat|
|00000d20| 65 20 2f 2a 20 3d 20 74 | 72 75 65 20 2a 2f 29 0d |e /* = t|rue */).|
|00000d30| 09 7b 0d 09 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |.{..unsi|gned lon|
|00000d40| 67 20 63 6f 75 6e 74 20 | 3d 20 74 68 69 73 2d 3e |g count |= this->|
|00000d50| 43 6f 75 6e 74 28 29 3b | 09 09 09 09 09 09 09 09 |Count();|........|
|00000d60| 09 09 2f 2f 20 48 6f 77 | 20 62 69 67 20 73 68 6f |..// How| big sho|
|00000d70| 75 6c 64 20 74 68 65 20 | 6e 65 77 20 6c 69 73 74 |uld the |new list|
|00000d80| 20 62 65 3f 0d 09 54 4c | 69 73 74 2a 20 6e 65 77 | be?..TL|ist* new|
|00000d90| 4c 69 73 74 3b 0d 0d 09 | 69 66 20 28 66 6f 72 63 |List;...|if (forc|
|00000da0| 65 43 72 65 61 74 65 20 | 7c 7c 20 28 63 6f 75 6e |eCreate ||| (coun|
|00000db0| 74 20 3e 20 30 29 29 09 | 09 09 09 09 09 09 09 09 |t > 0)).|........|
|00000dc0| 09 09 09 2f 2f 20 4f 6e | 6c 79 20 6d 61 6b 65 20 |...// On|ly make |
|00000dd0| 61 20 6e 65 77 20 6c 69 | 73 74 20 69 66 20 77 65 |a new li|st if we|
|00000de0| 20 68 61 76 65 20 74 6f | 0d 09 09 7b 0d 09 09 6e | have to|...{...n|
|00000df0| 65 77 4c 69 73 74 20 3d | 20 54 4c 69 73 74 3a 3a |ewList =| TList::|
|00000e00| 4d 61 6b 65 28 63 6f 75 | 6e 74 29 3b 09 09 09 09 |Make(cou|nt);....|
|00000e10| 09 09 09 09 09 09 09 2f | 2f 20 4d 61 6b 65 20 61 |......./|/ Make a|
|00000e20| 20 6e 65 77 20 6c 69 73 | 74 20 6f 66 20 74 68 61 | new lis|t of tha|
|00000e30| 74 20 73 69 7a 65 0d 09 | 09 46 61 69 6c 4e 69 6c |t size..|.FailNil|
|00000e40| 28 6e 65 77 4c 69 73 74 | 29 3b 09 09 09 09 09 09 |(newList|);......|
|00000e50| 09 09 09 09 09 09 09 09 | 2f 2f 20 46 61 69 6c 20 |........|// Fail |
|00000e60| 6f 75 74 20 69 66 20 69 | 74 20 64 69 64 6e d5 74 |out if i|t didn.t|
|00000e70| 20 77 6f 72 6b 0d 09 09 | 6e 65 77 4c 69 73 74 2d | work...|newList-|
|00000e80| 3e 53 65 74 42 79 74 65 | 43 6f 75 6e 74 28 74 68 |>SetByte|Count(th|
|00000e90| 69 73 2d 3e 66 42 79 74 | 65 43 6f 75 6e 74 2c 20 |is->fByt|eCount, |
|00000ea0| 66 61 6c 73 65 29 3b 09 | 09 09 09 09 09 09 2f 2f |false);.|......//|
|00000eb0| 20 4d 61 6b 65 20 73 75 | 72 65 20 74 68 65 20 73 | Make su|re the s|
|00000ec0| 69 7a 65 73 20 61 72 65 | 20 74 68 65 20 73 61 6d |izes are| the sam|
|00000ed0| 65 0d 0d 09 09 69 66 20 | 28 74 68 69 73 2d 3e 66 |e....if |(this->f|
|00000ee0| 42 79 74 65 43 6f 75 6e | 74 20 3e 20 30 29 09 09 |ByteCoun|t > 0)..|
|00000ef0| 09 09 09 09 09 09 09 09 | 09 09 2f 2f 20 49 66 20 |........|..// If |
|00000f00| 74 68 65 72 65 d5 73 20 | 61 6e 79 20 64 61 74 61 |there.s |any data|
|00000f10| 2c 0d 09 09 09 7b 0d 09 | 09 09 50 74 72 20 73 6f |,....{..|..Ptr so|
|00000f20| 75 72 63 65 50 74 72 20 | 09 3d 20 53 74 61 72 74 |urcePtr |.= Start|
|00000f30| 28 29 3b 0d 09 09 09 50 | 74 72 20 64 65 73 74 50 |();....P|tr destP|
|00000f40| 74 72 09 09 3d 20 6e 65 | 77 4c 69 73 74 2d 3e 53 |tr..= ne|wList->S|
|00000f50| 74 61 72 74 28 29 3b 0d | 09 09 09 42 6c 6f 63 6b |tart();.|...Block|
|00000f60| 4d 6f 76 65 44 61 74 61 | 28 73 6f 75 72 63 65 50 |MoveData|(sourceP|
|00000f70| 74 72 2c 20 64 65 73 74 | 50 74 72 2c 20 74 68 69 |tr, dest|Ptr, thi|
|00000f80| 73 2d 3e 66 42 79 74 65 | 43 6f 75 6e 74 29 3b 09 |s->fByte|Count);.|
|00000f90| 09 09 09 2f 2f 20 09 09 | 63 6f 70 79 20 69 74 0d |...// ..|copy it.|
|00000fa0| 09 09 09 7d 0d 09 09 7d | 0d 09 65 6c 73 65 09 09 |...}...}|..else..|
|00000fb0| 09 09 09 09 09 09 09 09 | 09 09 09 09 09 09 09 09 |........|........|
|00000fc0| 2f 2f 20 49 66 20 77 65 | d5 72 65 20 65 6d 70 74 |// If we|.re empt|
|00000fd0| 79 20 61 6e 64 20 6e 6f | 20 66 6f 72 63 65 43 72 |y and no| forceCr|
|00000fe0| 65 61 74 65 2c 0d 09 09 | 6e 65 77 4c 69 73 74 20 |eate,...|newList |
|00000ff0| 3d 20 74 68 69 73 3b 09 | 09 09 09 09 09 09 09 09 |= this;.|........|
|00001000| 09 09 09 09 09 09 2f 2f | 20 09 09 61 76 6f 69 64 |......//| ..avoid|
|00001010| 20 63 72 65 61 74 69 6e | 67 20 61 20 6e 65 77 20 | creatin|g a new |
|00001020| 6f 62 6a 65 63 74 0d 0d | 09 72 65 74 75 72 6e 20 |object..|.return |
|00001030| 6e 65 77 4c 69 73 74 3b | 0d 09 7d 20 2f 2f 20 54 |newList;|..} // T|
|00001040| 4c 69 73 74 3a 3a 43 6c | 6f 6e 65 20 0d 0d 0d 0d |List::Cl|one ....|
|00001050| 23 69 66 64 65 66 20 41 | 56 4f 49 44 49 4e 4c 49 |#ifdef A|VOIDINLI|
|00001060| 4e 45 53 0d 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |NES..//-|--------|
|00001070| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000010a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000010b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|000010c0| 2f 2f 20 54 4c 69 73 74 | 3a 3a 42 79 74 65 49 74 |// TList|::ByteIt|
|000010d0| 68 3a 20 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |h: .//--|--------|
|000010e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000010f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 76 |--------|------.v|
|00001130| 6f 69 64 2a 20 54 4c 69 | 73 74 3a 3a 42 79 74 65 |oid* TLi|st::Byte|
|00001140| 49 74 68 28 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |Ith(unsi|gned lon|
|00001150| 67 20 62 79 74 65 49 6e | 64 65 78 29 0d 09 7b 0d |g byteIn|dex)..{.|
|00001160| 09 41 53 53 45 52 54 28 | 62 79 74 65 49 6e 64 65 |.ASSERT(|byteInde|
|00001170| 78 20 3c 20 66 42 79 74 | 65 43 6f 75 6e 74 29 3b |x < fByt|eCount);|
|00001180| 0d 0d 09 72 65 74 75 72 | 6e 20 28 76 6f 69 64 2a |...retur|n (void*|
|00001190| 29 20 66 4f 62 6a 65 63 | 74 42 6c 6f 63 6b 43 61 |) fObjec|tBlockCa|
|000011a0| 63 68 65 2e 47 65 74 55 | 49 6e 74 33 32 28 62 79 |che.GetU|Int32(by|
|000011b0| 74 65 49 6e 64 65 78 29 | 3b 0d 09 7d 20 2f 2f 20 |teIndex)|;..} // |
|000011c0| 54 4c 69 73 74 3a 3a 42 | 79 74 65 49 74 68 20 0d |TList::B|yteIth .|
|000011d0| 0d 23 65 6e 64 69 66 20 | 2f 2f 20 41 56 4f 49 44 |.#endif |// AVOID|
|000011e0| 49 4e 4c 49 4e 45 53 0d | 0d 2f 2f 2d 2d 2d 2d 2d |INLINES.|.//-----|
|000011f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001210| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001240| 2d 2d 2d 0d 2f 2f 20 54 | 4c 69 73 74 3a 3a 46 6f |---.// T|List::Fo|
|00001250| 72 45 61 63 68 44 6f 3a | 20 0d 2f 2f 2d 2d 2d 2d |rEachDo:| .//----|
|00001260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001270| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001280| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000012a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000012b0| 2d 2d 2d 2d 0d 76 6f 69 | 64 20 54 4c 69 73 74 3a |----.voi|d TList:|
|000012c0| 3a 46 6f 72 45 61 63 68 | 44 6f 28 76 6f 69 64 20 |:ForEach|Do(void |
|000012d0| 28 2a 66 75 6e 63 29 28 | 76 6f 69 64 2a 29 29 0d |(*func)(|void*)).|
|000012e0| 09 7b 0d 09 46 4f 52 45 | 41 43 48 49 54 45 4d 28 |.{..FORE|ACHITEM(|
|000012f0| 74 68 69 73 29 0d 09 09 | 28 2a 66 75 6e 63 29 28 |this)...|(*func)(|
|00001300| 69 74 65 6d 29 3b 0d 09 | 7d 20 2f 2f 20 54 4c 69 |item);..|} // TLi|
|00001310| 73 74 3a 3a 46 6f 72 45 | 61 63 68 44 6f 20 0d 0d |st::ForE|achDo ..|
|00001320| 0d 2f 2f 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.//-----|--------|
|00001330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001340| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001350| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001370| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 2f 2f 20 54 |--------|---.// T|
|00001380| 4c 69 73 74 3a 3a 46 69 | 6e 64 46 69 72 73 74 53 |List::Fi|ndFirstS|
|00001390| 75 63 68 54 68 61 74 3a | 20 0d 2f 2f 2d 2d 2d 2d |uchThat:| .//----|
|000013a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000013f0| 2d 2d 2d 2d 0d 76 6f 69 | 64 2a 20 54 4c 69 73 74 |----.voi|d* TList|
|00001400| 3a 3a 46 69 6e 64 46 69 | 72 73 74 53 75 63 68 54 |::FindFi|rstSuchT|
|00001410| 68 61 74 28 42 6f 6f 6c | 65 61 6e 20 28 2a 66 75 |hat(Bool|ean (*fu|
|00001420| 6e 63 29 28 63 6f 6e 73 | 74 20 76 6f 69 64 2a 29 |nc)(cons|t void*)|
|00001430| 29 0d 09 7b 0d 09 46 4f | 52 45 41 43 48 49 54 45 |)..{..FO|REACHITE|
|00001440| 4d 28 74 68 69 73 29 0d | 09 09 69 66 20 28 28 2a |M(this).|..if ((*|
|00001450| 66 75 6e 63 29 28 69 74 | 65 6d 29 29 20 72 65 74 |func)(it|em)) ret|
|00001460| 75 72 6e 20 69 74 65 6d | 3b 0d 09 72 65 74 75 72 |urn item|;..retur|
|00001470| 6e 20 6e 69 6c 3b 0d 09 | 7d 20 2f 2f 20 54 4c 69 |n nil;..|} // TLi|
|00001480| 73 74 3a 3a 46 69 6e 64 | 46 69 72 73 74 53 75 63 |st::Find|FirstSuc|
|00001490| 68 54 68 61 74 20 0d 0d | 0d 2f 2f 2d 2d 2d 2d 2d |hThat ..|.//-----|
|000014a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000014f0| 2d 2d 2d 0d 2f 2f 20 54 | 4c 69 73 74 3a 3a 42 79 |---.// T|List::By|
|00001500| 74 65 49 6e 64 65 78 3a | 20 0d 2f 2f 2d 2d 2d 2d |teIndex:| .//----|
|00001510| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001560| 2d 2d 2d 2d 0d 6c 6f 6e | 67 20 54 4c 69 73 74 3a |----.lon|g TList:|
|00001570| 3a 42 79 74 65 49 6e 64 | 65 78 28 63 6f 6e 73 74 |:ByteInd|ex(const|
|00001580| 20 76 6f 69 64 2a 20 61 | 6e 69 74 65 6d 29 0d 09 | void* a|nitem)..|
|00001590| 7b 0d 09 2f 2f 0d 09 2f | 2f 20 53 68 6f 72 74 63 |{..//../|/ Shortc|
|000015a0| 75 74 20 74 68 65 20 73 | 68 6f 72 74 20 63 61 73 |ut the s|hort cas|
|000015b0| 65 3a 20 69 66 20 77 65 | 20 6f 6e 6c 79 20 68 61 |e: if we| only ha|
|000015c0| 76 65 20 6f 6e 65 20 28 | 6f 72 20 6e 6f 29 20 65 |ve one (|or no) e|
|000015d0| 6e 74 72 69 65 73 2c 20 | 72 65 74 75 72 6e 20 30 |ntries, |return 0|
|000015e0| 20 28 61 73 20 74 68 65 | 20 69 6e 64 65 78 0d 09 | (as the| index..|
|000015f0| 2f 2f 20 74 6f 20 74 68 | 65 20 6f 6e 6c 79 20 65 |// to th|e only e|
|00001600| 6e 74 72 79 29 20 69 66 | 20 69 74 20 6d 61 74 63 |ntry) if| it matc|
|00001610| 68 65 73 2c 20 6f 72 20 | 6b 42 79 74 65 49 74 65 |hes, or |kByteIte|
|00001620| 6d 4e 6f 74 46 6f 75 6e | 64 20 69 66 20 69 74 20 |mNotFoun|d if it |
|00001630| 64 6f 65 73 6e 27 74 2e | 20 28 57 65 20 6b 6e 6f |doesn't.| (We kno|
|00001640| 77 20 74 68 61 74 20 69 | 66 20 77 65 0d 09 2f 2f |w that i|f we..//|
|00001650| 20 68 61 76 65 20 6e 6f | 20 65 6e 74 72 69 65 73 | have no| entries|
|00001660| 2c 20 66 44 61 74 75 6d | 20 77 69 6c 6c 20 62 65 |, fDatum| will be|
|00001670| 20 6e 69 6c 29 2e 0d 09 | 2f 2f 0d 09 69 66 20 28 | nil)...|//..if (|
|00001680| 21 45 6d 70 74 79 28 29 | 29 0d 09 09 7b 0d 09 09 |!Empty()|)...{...|
|00001690| 46 4f 52 45 41 43 48 49 | 54 45 4d 28 74 68 69 73 |FOREACHI|TEM(this|
|000016a0| 29 0d 09 09 09 69 66 20 | 28 61 6e 69 74 65 6d 20 |)....if |(anitem |
|000016b0| 3d 3d 20 69 74 65 6d 29 | 0d 09 09 09 09 72 65 74 |== item)|.....ret|
|000016c0| 75 72 6e 20 6c 6f 6f 70 | 2e 43 75 72 72 65 6e 74 |urn loop|.Current|
|000016d0| 42 79 74 65 49 6e 64 65 | 78 28 29 3b 0d 09 09 7d |ByteInde|x();...}|
|000016e0| 0d 0d 09 72 65 74 75 72 | 6e 20 6b 42 79 74 65 49 |...retur|n kByteI|
|000016f0| 74 65 6d 4e 6f 74 46 6f | 75 6e 64 3b 09 09 09 09 |temNotFo|und;....|
|00001700| 09 09 09 09 09 2f 2f 20 | 69 74 65 6d 20 6e 6f 74 |.....// |item not|
|00001710| 20 66 6f 75 6e 64 0d 09 | 7d 20 2f 2f 20 54 4c 69 | found..|} // TLi|
|00001720| 73 74 3a 3a 42 79 74 65 | 49 6e 64 65 78 20 0d 0d |st::Byte|Index ..|
|00001730| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00001740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001750| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001760| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001770| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001780| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 54 4c |--------|--.// TL|
|00001790| 69 73 74 3a 3a 49 6e 73 | 65 72 74 3a 20 0d 2f 2f |ist::Ins|ert: .//|
|000017a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000017f0| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 76 6f 69 64 20 54 4c |--------|.void TL|
|00001800| 69 73 74 3a 3a 49 6e 73 | 65 72 74 28 76 6f 69 64 |ist::Ins|ert(void|
|00001810| 2a 20 6e 65 77 69 74 65 | 6d 2c 20 75 6e 73 69 67 |* newite|m, unsig|
|00001820| 6e 65 64 20 6c 6f 6e 67 | 20 62 65 66 6f 72 65 49 |ned long| beforeI|
|00001830| 6e 64 65 78 20 2f 2a 3d | 20 30 2a 2f 2c 20 75 6e |ndex /*=| 0*/, un|
|00001840| 73 69 67 6e 65 64 20 6c | 6f 6e 67 20 6e 75 6d 49 |signed l|ong numI|
|00001850| 74 65 6d 73 20 2f 2a 3d | 20 31 2a 2f 29 0d 09 7b |tems /*=| 1*/)..{|
|00001860| 0d 09 41 53 53 45 52 54 | 28 6e 65 77 69 74 65 6d |..ASSERT|(newitem|
|00001870| 29 3b 0d 09 41 53 53 45 | 52 54 28 66 4e 75 6d 4c |);..ASSE|RT(fNumL|
|00001880| 6f 6f 70 73 20 3d 3d 20 | 30 29 3b 0d 09 41 53 53 |oops == |0);..ASS|
|00001890| 45 52 54 28 62 65 66 6f | 72 65 49 6e 64 65 78 20 |ERT(befo|reIndex |
|000018a0| 3c 3d 20 66 42 79 74 65 | 43 6f 75 6e 74 29 3b 0d |<= fByte|Count);.|
|000018b0| 0d 09 73 69 7a 65 5f 74 | 20 6e 65 77 43 6f 75 6e |..size_t| newCoun|
|000018c0| 74 20 3d 20 66 42 79 74 | 65 43 6f 75 6e 74 20 2b |t = fByt|eCount +|
|000018d0| 20 6b 49 74 65 6d 53 69 | 7a 65 3b 0d 09 69 66 20 | kItemSi|ze;..if |
|000018e0| 28 42 79 74 65 53 69 7a | 65 28 29 20 3c 20 6e 65 |(ByteSiz|e() < ne|
|000018f0| 77 43 6f 75 6e 74 29 0d | 09 09 53 65 74 53 69 7a |wCount).|..SetSiz|
|00001900| 65 28 6e 65 77 43 6f 75 | 6e 74 29 3b 0d 0d 09 76 |e(newCou|nt);...v|
|00001910| 6f 69 64 2a 2a 20 61 64 | 64 20 3d 20 28 76 6f 69 |oid** ad|d = (voi|
|00001920| 64 2a 2a 29 20 66 4f 62 | 6a 65 63 74 42 6c 6f 63 |d**) fOb|jectBloc|
|00001930| 6b 43 61 63 68 65 2e 47 | 65 74 50 74 72 28 62 65 |kCache.G|etPtr(be|
|00001940| 66 6f 72 65 49 6e 64 65 | 78 29 3b 0d 0d 09 69 66 |foreInde|x);...if|
|00001950| 20 28 62 65 66 6f 72 65 | 49 6e 64 65 78 20 3c 20 | (before|Index < |
|00001960| 66 42 79 74 65 43 6f 75 | 6e 74 29 09 09 09 09 09 |fByteCou|nt).....|
|00001970| 09 09 09 2f 2f 20 73 68 | 6f 72 74 2d 63 69 72 63 |...// sh|ort-circ|
|00001980| 75 69 74 20 66 6f 72 20 | 41 70 70 65 6e 64 20 63 |uit for |Append c|
|00001990| 61 73 65 0d 09 09 42 6c | 6f 63 6b 4d 6f 76 65 44 |ase...Bl|ockMoveD|
|000019a0| 61 74 61 28 61 64 64 2c | 20 28 28 63 68 61 72 20 |ata(add,| ((char |
|000019b0| 2a 29 20 61 64 64 29 20 | 2b 20 6b 49 74 65 6d 53 |*) add) |+ kItemS|
|000019c0| 69 7a 65 20 2a 20 6e 75 | 6d 49 74 65 6d 73 2c 20 |ize * nu|mItems, |
|000019d0| 66 42 79 74 65 43 6f 75 | 6e 74 20 2d 20 62 65 66 |fByteCou|nt - bef|
|000019e0| 6f 72 65 49 6e 64 65 78 | 29 3b 0d 09 0d 09 69 66 |oreIndex|);....if|
|000019f0| 20 28 6e 75 6d 49 74 65 | 6d 73 20 3d 3d 20 31 29 | (numIte|ms == 1)|
|00001a00| 0d 09 09 2a 61 64 64 20 | 3d 20 6e 65 77 69 74 65 |...*add |= newite|
|00001a10| 6d 3b 0d 09 65 6c 73 65 | 0d 09 09 2f 2f 0d 09 09 |m;..else|...//...|
|00001a20| 2f 2f 20 49 6e 20 74 68 | 65 20 63 61 73 65 20 6f |// In th|e case o|
|00001a30| 66 20 61 6e 20 61 64 64 | 2c 20 6e 75 6d 49 74 65 |f an add|, numIte|
|00001a40| 6d 73 20 3e 20 31 2c 20 | 6e 65 77 49 74 65 6d 20 |ms > 1, |newItem |
|00001a50| 69 73 20 61 20 70 74 72 | 20 74 6f 20 6c 69 73 74 |is a ptr| to list|
|00001a60| 20 64 61 74 61 2c 20 0d | 09 09 2f 2f 20 4e 4f 54 | data, .|..// NOT|
|00001a70| 20 41 20 50 54 52 20 74 | 6f 20 61 6e 20 65 6c 65 | A PTR t|o an ele|
|00001a80| 6d 65 6e 74 21 0d 09 09 | 2f 2f 0d 09 09 42 6c 6f |ment!...|//...Blo|
|00001a90| 63 6b 4d 6f 76 65 44 61 | 74 61 28 20 6e 65 77 69 |ckMoveDa|ta( newi|
|00001aa0| 74 65 6d 2c 20 61 64 64 | 2c 20 6b 49 74 65 6d 53 |tem, add|, kItemS|
|00001ab0| 69 7a 65 2a 6e 75 6d 49 | 74 65 6d 73 20 29 3b 0d |ize*numI|tems );.|
|00001ac0| 0d 09 66 42 79 74 65 43 | 6f 75 6e 74 20 3d 20 66 |..fByteC|ount = f|
|00001ad0| 42 79 74 65 43 6f 75 6e | 74 20 2b 20 6b 49 74 65 |ByteCoun|t + kIte|
|00001ae0| 6d 53 69 7a 65 20 2a 20 | 6e 75 6d 49 74 65 6d 73 |mSize * |numItems|
|00001af0| 3b 0d 09 0d 09 2f 2f 0d | 09 2f 2f 20 41 73 6b 20 |;....//.|.// Ask |
|00001b00| 74 68 65 20 6e 65 77 20 | 69 74 65 6d 20 74 6f 20 |the new |item to |
|00001b10| 6e 6f 74 69 66 79 20 75 | 73 20 69 66 20 69 74 d5 |notify u|s if it.|
|00001b20| 73 20 65 76 65 72 20 64 | 65 6c 65 74 65 64 2e 0d |s ever d|eleted..|
|00001b30| 09 2f 2f 20 4e 4f 54 45 | 3a 20 4f 6e 6c 79 20 75 |.// NOTE|: Only u|
|00001b40| 73 65 20 64 65 6c 65 74 | 65 20 6e 6f 74 69 66 69 |se delet|e notifi|
|00001b50| 63 61 74 69 6f 6e 20 66 | 6f 72 20 54 4f 62 6a 65 |cation f|or TObje|
|00001b60| 63 74 4c 69 73 74 73 21 | 0d 09 2f 2f 0d 09 69 66 |ctLists!|..//..if|
|00001b70| 20 28 66 55 73 65 44 65 | 6c 65 74 65 4e 6f 74 69 | (fUseDe|leteNoti|
|00001b80| 66 69 63 61 74 69 6f 6e | 29 0d 09 09 28 28 54 4f |fication|)...((TO|
|00001b90| 62 6a 65 63 74 2a 29 6e | 65 77 69 74 65 6d 29 2d |bject*)n|ewitem)-|
|00001ba0| 3e 52 65 67 69 73 74 65 | 72 46 6f 72 44 65 6c 65 |>Registe|rForDele|
|00001bb0| 74 65 4e 6f 74 69 66 69 | 63 61 74 69 6f 6e 28 74 |teNotifi|cation(t|
|00001bc0| 68 69 73 2c 20 6b 52 65 | 67 69 73 74 65 72 46 6f |his, kRe|gisterFo|
|00001bd0| 72 44 65 6c 65 74 65 4e | 6f 74 69 66 69 63 61 74 |rDeleteN|otificat|
|00001be0| 69 6f 6e 29 3b 0d 09 09 | 0d 09 7d 20 2f 2f 20 54 |ion);...|..} // T|
|00001bf0| 4c 69 73 74 3a 3a 49 6e | 73 65 72 74 20 0d 0d 0d |List::In|sert ...|
|00001c00| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00001c10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 54 4c |--------|--.// TL|
|00001c60| 69 73 74 3a 3a 43 6f 6e | 63 61 74 3a 20 0d 2f 2f |ist::Con|cat: .//|
|00001c70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ca0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001cb0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 76 6f 69 64 20 54 4c |--------|.void TL|
|00001cd0| 69 73 74 3a 3a 43 6f 6e | 63 61 74 28 54 4c 69 73 |ist::Con|cat(TLis|
|00001ce0| 74 2a 20 61 70 70 65 6e | 64 29 0d 09 7b 0d 09 61 |t* appen|d)..{..a|
|00001cf0| 70 70 65 6e 64 2d 3e 54 | 72 69 6d 28 29 3b 0d 09 |ppend->T|rim();..|
|00001d00| 6c 6f 6e 67 20 6e 75 6d | 45 6c 65 6d 65 6e 74 73 |long num|Elements|
|00001d10| 20 3d 20 61 70 70 65 6e | 64 2d 3e 43 6f 75 6e 74 | = appen|d->Count|
|00001d20| 28 29 3b 0d 09 50 74 72 | 20 64 61 74 61 20 3d 20 |();..Ptr| data = |
|00001d30| 28 50 74 72 29 20 61 70 | 70 65 6e 64 2d 3e 53 74 |(Ptr) ap|pend->St|
|00001d40| 61 72 74 28 29 3b 0d 09 | 0d 09 74 68 69 73 2d 3e |art();..|..this->|
|00001d50| 49 6e 73 65 72 74 28 64 | 61 74 61 2c 66 42 79 74 |Insert(d|ata,fByt|
|00001d60| 65 43 6f 75 6e 74 2c 6e | 75 6d 45 6c 65 6d 65 6e |eCount,n|umElemen|
|00001d70| 74 73 29 3b 0d 09 7d 0d | 0d 0d 23 69 66 64 65 66 |ts);..}.|..#ifdef|
|00001d80| 20 41 56 4f 49 44 49 4e | 4c 49 4e 45 53 0d 2f 2f | AVOIDIN|LINES.//|
|00001d90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001da0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001db0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001dc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001dd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001de0| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 2f 2f 20 54 4c 69 73 |--------|.// TLis|
|00001df0| 74 3a 3a 53 65 74 53 69 | 7a 65 3a 20 0d 2f 2f 2d |t::SetSi|ze: .//-|
|00001e00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001e50| 2d 2d 2d 2d 2d 2d 2d 0d | 76 6f 69 64 20 54 4c 69 |-------.|void TLi|
|00001e60| 73 74 3a 3a 53 65 74 53 | 69 7a 65 28 73 69 7a 65 |st::SetS|ize(size|
|00001e70| 5f 74 20 75 73 65 64 29 | 0d 09 7b 0d 09 69 66 20 |_t used)|..{..if |
|00001e80| 28 75 73 65 64 20 21 3d | 20 42 79 74 65 53 69 7a |(used !=| ByteSiz|
|00001e90| 65 28 29 29 0d 09 09 66 | 4f 62 6a 65 63 74 42 6c |e())...f|ObjectBl|
|00001ea0| 6f 63 6b 43 61 63 68 65 | 2e 53 65 74 55 73 65 64 |ockCache|.SetUsed|
|00001eb0| 28 75 73 65 64 29 3b 0d | 09 7d 20 2f 2f 20 54 4c |(used);.|.} // TL|
|00001ec0| 69 73 74 3a 3a 53 65 74 | 53 69 7a 65 20 0d 0d 09 |ist::Set|Size ...|
|00001ed0| 0d 2f 2f 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.//-----|--------|
|00001ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 2f 2f 20 54 |--------|---.// T|
|00001f30| 4c 69 73 74 3a 3a 41 70 | 70 65 6e 64 3a 20 0d 2f |List::Ap|pend: ./|
|00001f40| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00001f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00001f90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 76 6f 69 64 20 54 |--------|-.void T|
|00001fa0| 4c 69 73 74 3a 3a 41 70 | 70 65 6e 64 28 76 6f 69 |List::Ap|pend(voi|
|00001fb0| 64 2a 20 61 64 64 29 0d | 09 7b 0d 09 49 6e 73 65 |d* add).|.{..Inse|
|00001fc0| 72 74 28 61 64 64 2c 20 | 66 42 79 74 65 43 6f 75 |rt(add, |fByteCou|
|00001fd0| 6e 74 29 3b 0d 09 7d 20 | 2f 2f 20 54 4c 69 73 74 |nt);..} |// TList|
|00001fe0| 3a 3a 41 70 70 65 6e 64 | 20 0d 0d 2f 2f 2d 2d 2d |::Append| ..//---|
|00001ff0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002000| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002010| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002040| 2d 2d 2d 2d 2d 0d 2f 2f | 20 54 4c 69 73 74 3a 3a |-----.//| TList::|
|00002050| 41 64 64 3a 20 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |Add: .//|--------|
|00002060| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002070| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000020a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000020b0| 0d 76 6f 69 64 20 54 4c | 69 73 74 3a 3a 41 64 64 |.void TL|ist::Add|
|000020c0| 28 76 6f 69 64 2a 20 61 | 64 64 29 0d 09 7b 0d 09 |(void* a|dd)..{..|
|000020d0| 41 70 70 65 6e 64 28 61 | 64 64 29 3b 20 0d 09 7d |Append(a|dd); ..}|
|000020e0| 20 2f 2f 20 54 4c 69 73 | 74 3a 3a 41 64 64 20 0d | // TLis|t::Add .|
|000020f0| 23 65 6e 64 69 66 20 2f | 2f 20 41 56 4f 49 44 49 |#endif /|/ AVOIDI|
|00002100| 4e 4c 49 4e 45 53 0d 0d | 2f 2f 2d 2d 2d 2d 2d 2d |NLINES..|//------|
|00002110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002130| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002150| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002160| 2d 2d 0d 2f 2f 20 54 4c | 69 73 74 3a 3a 41 64 64 |--.// TL|ist::Add|
|00002170| 55 6e 69 71 75 65 3a 20 | 0d 2f 2f 2d 2d 2d 2d 2d |Unique: |.//-----|
|00002180| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002190| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000021d0| 2d 2d 2d 0d 42 6f 6f 6c | 65 61 6e 20 54 4c 69 73 |---.Bool|ean TLis|
|000021e0| 74 3a 3a 41 64 64 55 6e | 69 71 75 65 28 76 6f 69 |t::AddUn|ique(voi|
|000021f0| 64 2a 20 61 64 64 29 0d | 09 7b 0d 09 41 53 53 45 |d* add).|.{..ASSE|
|00002200| 52 54 28 61 64 64 29 3b | 0d 09 41 53 53 45 52 54 |RT(add);|..ASSERT|
|00002210| 28 66 4e 75 6d 4c 6f 6f | 70 73 20 3d 3d 20 30 29 |(fNumLoo|ps == 0)|
|00002220| 3b 0d 0d 09 42 6f 6f 6c | 65 61 6e 20 6e 6f 74 48 |;...Bool|ean notH|
|00002230| 65 72 65 20 3d 20 28 42 | 79 74 65 49 6e 64 65 78 |ere = (B|yteIndex|
|00002240| 28 61 64 64 29 20 3d 3d | 20 6b 42 79 74 65 49 74 |(add) ==| kByteIt|
|00002250| 65 6d 4e 6f 74 46 6f 75 | 6e 64 29 3b 09 2f 2f 20 |emNotFou|nd);.// |
|00002260| 69 73 20 69 74 20 70 72 | 65 73 65 6e 74 20 79 65 |is it pr|esent ye|
|00002270| 74 3f 0d 09 69 66 20 28 | 6e 6f 74 48 65 72 65 29 |t?..if (|notHere)|
|00002280| 20 41 64 64 28 61 64 64 | 29 3b 09 09 09 09 09 09 | Add(add|);......|
|00002290| 09 09 09 09 2f 2f 20 69 | 74 27 73 20 6e 6f 74 20 |....// i|t's not |
|000022a0| 68 65 72 65 20 79 65 74 | 2c 20 73 6f 20 61 64 64 |here yet|, so add|
|000022b0| 20 69 74 2e 0d 09 72 65 | 74 75 72 6e 20 6e 6f 74 | it...re|turn not|
|000022c0| 48 65 72 65 3b 09 09 09 | 09 09 09 09 09 09 09 09 |Here;...|........|
|000022d0| 09 2f 2f 20 72 65 74 75 | 72 6e 20 74 72 75 65 20 |.// retu|rn true |
|000022e0| 69 66 20 77 65 20 61 64 | 64 65 64 20 69 74 2c 20 |if we ad|ded it, |
|000022f0| 65 6c 73 65 20 66 61 6c | 73 65 2e 0d 09 7d 20 2f |else fal|se...} /|
|00002300| 2f 20 54 4c 69 73 74 3a | 3a 41 64 64 55 6e 69 71 |/ TList:|:AddUniq|
|00002310| 75 65 20 0d 0d 0d 0d 0d | 0d 2f 2f 2d 2d 2d 2d 2d |ue .....|.//-----|
|00002320| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002340| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002350| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002370| 2d 2d 2d 0d 2f 2f 20 54 | 4c 69 73 74 3a 3a 52 65 |---.// T|List::Re|
|00002380| 6d 6f 76 65 4e 6f 54 72 | 69 6d 4e 6f 55 6e 72 65 |moveNoTr|imNoUnre|
|00002390| 67 69 73 74 65 72 3a 20 | 0d 2f 2f 2d 2d 2d 2d 2d |gister: |.//-----|
|000023a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000023f0| 2d 2d 2d 0d 76 6f 69 64 | 20 54 4c 69 73 74 3a 3a |---.void| TList::|
|00002400| 52 65 6d 6f 76 65 4e 6f | 54 72 69 6d 4e 6f 55 6e |RemoveNo|TrimNoUn|
|00002410| 72 65 67 69 73 74 65 72 | 28 75 6e 73 69 67 6e 65 |register|(unsigne|
|00002420| 64 20 6c 6f 6e 67 20 69 | 6e 64 65 78 29 0d 09 7b |d long i|ndex)..{|
|00002430| 0d 09 41 53 53 45 52 54 | 28 66 4e 75 6d 4c 6f 6f |..ASSERT|(fNumLoo|
|00002440| 70 73 20 3d 3d 20 30 29 | 3b 0d 09 41 53 53 45 52 |ps == 0)|;..ASSER|
|00002450| 54 28 69 6e 64 65 78 20 | 3c 20 66 42 79 74 65 43 |T(index |< fByteC|
|00002460| 6f 75 6e 74 29 3b 0d 09 | 41 53 53 45 52 54 28 69 |ount);..|ASSERT(i|
|00002470| 6e 64 65 78 20 3d 3d 20 | 28 28 69 6e 64 65 78 3e |ndex == |((index>|
|00002480| 3e 32 29 3c 3c 32 29 29 | 3b 0d 0d 09 66 42 79 74 |>2)<<2))|;...fByt|
|00002490| 65 43 6f 75 6e 74 20 3d | 20 66 42 79 74 65 43 6f |eCount =| fByteCo|
|000024a0| 75 6e 74 20 2d 20 6b 49 | 74 65 6d 53 69 7a 65 3b |unt - kI|temSize;|
|000024b0| 0d 09 0d 09 2f 2f 0d 09 | 2f 2f 20 53 68 6f 72 74 |....//..|// Short|
|000024c0| 2d 63 69 72 63 75 69 74 | 20 66 6f 72 20 72 65 6d |-circuit| for rem|
|000024d0| 6f 76 65 20 6c 61 73 74 | 20 63 61 73 65 0d 09 2f |ove last| case../|
|000024e0| 2f 0d 09 69 66 20 28 69 | 6e 64 65 78 20 3c 20 66 |/..if (i|ndex < f|
|000024f0| 42 79 74 65 43 6f 75 6e | 74 29 09 09 0d 09 09 7b |ByteCoun|t).....{|
|00002500| 09 0d 09 09 50 74 72 20 | 73 6f 75 72 63 65 50 74 |....Ptr |sourcePt|
|00002510| 72 20 09 3d 20 66 4f 62 | 6a 65 63 74 42 6c 6f 63 |r .= fOb|jectBloc|
|00002520| 6b 43 61 63 68 65 2e 47 | 65 74 50 74 72 28 69 6e |kCache.G|etPtr(in|
|00002530| 64 65 78 20 2b 20 6b 49 | 74 65 6d 53 69 7a 65 29 |dex + kI|temSize)|
|00002540| 3b 0d 09 09 50 74 72 20 | 64 65 73 74 50 74 72 09 |;...Ptr |destPtr.|
|00002550| 09 3d 20 66 4f 62 6a 65 | 63 74 42 6c 6f 63 6b 43 |.= fObje|ctBlockC|
|00002560| 61 63 68 65 2e 47 65 74 | 50 74 72 28 69 6e 64 65 |ache.Get|Ptr(inde|
|00002570| 78 29 3b 0d 09 09 0d 09 | 09 42 6c 6f 63 6b 4d 6f |x);.....|.BlockMo|
|00002580| 76 65 44 61 74 61 28 73 | 6f 75 72 63 65 50 74 72 |veData(s|ourcePtr|
|00002590| 2c 20 64 65 73 74 50 74 | 72 2c 20 66 42 79 74 65 |, destPt|r, fByte|
|000025a0| 43 6f 75 6e 74 2d 69 6e | 64 65 78 29 3b 0d 09 09 |Count-in|dex);...|
|000025b0| 7d 0d 09 09 0d 23 69 66 | 64 65 66 20 44 45 42 55 |}....#if|def DEBU|
|000025c0| 47 0d 09 66 4f 62 6a 65 | 63 74 42 6c 6f 63 6b 43 |G..fObje|ctBlockC|
|000025d0| 61 63 68 65 2e 53 65 74 | 28 20 28 55 49 6e 74 33 |ache.Set|( (UInt3|
|000025e0| 32 29 20 30 78 44 45 41 | 44 42 45 45 46 2c 20 66 |2) 0xDEA|DBEEF, f|
|000025f0| 42 79 74 65 43 6f 75 6e | 74 29 3b 09 09 09 2f 2f |ByteCoun|t);...//|
|00002600| 20 63 6c 65 61 72 20 6f | 75 74 20 61 74 20 65 6e | clear o|ut at en|
|00002610| 64 0d 23 65 6e 64 69 66 | 0d 09 7d 0d 0d 2f 2f 2d |d.#endif|..}..//-|
|00002620| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002630| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002640| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002650| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002660| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002670| 2d 2d 2d 2d 2d 2d 2d 0d | 2f 2f 20 54 4c 69 73 74 |-------.|// TList|
|00002680| 3a 3a 52 65 6d 6f 76 65 | 4e 6f 54 72 69 6d 3a 20 |::Remove|NoTrim: |
|00002690| 0d 2f 2f 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.//-----|--------|
|000026a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000026b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000026c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000026d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000026e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 0d 76 6f 69 64 |--------|---.void|
|000026f0| 20 54 4c 69 73 74 3a 3a | 52 65 6d 6f 76 65 4e 6f | TList::|RemoveNo|
|00002700| 54 72 69 6d 28 75 6e 73 | 69 67 6e 65 64 20 6c 6f |Trim(uns|igned lo|
|00002710| 6e 67 20 69 6e 64 65 78 | 29 0d 09 7b 0d 09 41 53 |ng index|)..{..AS|
|00002720| 53 45 52 54 28 66 4e 75 | 6d 4c 6f 6f 70 73 20 3d |SERT(fNu|mLoops =|
|00002730| 3d 20 30 29 3b 0d 09 41 | 53 53 45 52 54 28 69 6e |= 0);..A|SSERT(in|
|00002740| 64 65 78 20 3c 20 66 42 | 79 74 65 43 6f 75 6e 74 |dex < fB|yteCount|
|00002750| 29 3b 0d 09 41 53 53 45 | 52 54 28 69 6e 64 65 78 |);..ASSE|RT(index|
|00002760| 20 3d 3d 20 28 28 69 6e | 64 65 78 3e 3e 32 29 3c | == ((in|dex>>2)<|
|00002770| 3c 32 29 29 3b 0d 0d 09 | 2f 2f 0d 09 2f 2f 20 49 |<2));...|//..// I|
|00002780| 6e 66 6f 72 6d 20 74 68 | 65 20 72 65 6d 6f 76 65 |nform th|e remove|
|00002790| 64 20 69 74 65 6d 20 74 | 68 61 74 20 77 65 20 6e |d item t|hat we n|
|000027a0| 6f 20 6c 6f 6e 67 65 72 | 20 63 61 72 65 20 61 62 |o longer| care ab|
|000027b0| 6f 75 74 20 69 74 73 20 | 64 65 6c 65 74 65 20 6e |out its |delete n|
|000027c0| 6f 74 69 66 69 63 61 74 | 69 6f 6e 2e 0d 09 2f 2f |otificat|ion...//|
|000027d0| 20 4e 4f 54 45 3a 20 4f | 6e 6c 79 20 75 73 65 20 | NOTE: O|nly use |
|000027e0| 64 65 6c 65 74 65 20 6e | 6f 74 69 66 69 63 61 74 |delete n|otificat|
|000027f0| 69 6f 6e 20 66 6f 72 20 | 54 4f 62 6a 65 63 74 4c |ion for |TObjectL|
|00002800| 69 73 74 73 21 0d 09 2f | 2f 0d 09 69 66 20 28 66 |ists!../|/..if (f|
|00002810| 55 73 65 44 65 6c 65 74 | 65 4e 6f 74 69 66 69 63 |UseDelet|eNotific|
|00002820| 61 74 69 6f 6e 29 0d 09 | 09 7b 0d 09 09 76 6f 69 |ation)..|.{...voi|
|00002830| 64 2a 20 69 74 65 6d 20 | 3d 20 42 79 74 65 49 74 |d* item |= ByteIt|
|00002840| 68 28 69 6e 64 65 78 29 | 3b 0d 09 09 28 28 54 4f |h(index)|;...((TO|
|00002850| 62 6a 65 63 74 2a 29 69 | 74 65 6d 29 2d 3e 52 65 |bject*)i|tem)->Re|
|00002860| 67 69 73 74 65 72 46 6f | 72 44 65 6c 65 74 65 4e |gisterFo|rDeleteN|
|00002870| 6f 74 69 66 69 63 61 74 | 69 6f 6e 28 74 68 69 73 |otificat|ion(this|
|00002880| 2c 20 6b 55 6e 72 65 67 | 69 73 74 65 72 46 6f 72 |, kUnreg|isterFor|
|00002890| 44 65 6c 65 74 65 4e 6f | 74 69 66 69 63 61 74 69 |DeleteNo|tificati|
|000028a0| 6f 6e 29 3b 0d 09 09 7d | 09 0d 09 0d 09 74 68 69 |on);...}|.....thi|
|000028b0| 73 2d 3e 52 65 6d 6f 76 | 65 4e 6f 54 72 69 6d 4e |s->Remov|eNoTrimN|
|000028c0| 6f 55 6e 72 65 67 69 73 | 74 65 72 28 69 6e 64 65 |oUnregis|ter(inde|
|000028d0| 78 29 3b 0d 09 7d 0d 0d | 2f 2f 2d 2d 2d 2d 2d 2d |x);..}..|//------|
|000028e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000028f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002900| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002910| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002920| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002930| 2d 2d 0d 2f 2f 20 54 4c | 69 73 74 3a 3a 52 65 6d |--.// TL|ist::Rem|
|00002940| 6f 76 65 3a 20 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |ove: .//|--------|
|00002950| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002960| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002970| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002980| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002990| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000029a0| 0d 76 6f 69 64 20 54 4c | 69 73 74 3a 3a 52 65 6d |.void TL|ist::Rem|
|000029b0| 6f 76 65 28 75 6e 73 69 | 67 6e 65 64 20 6c 6f 6e |ove(unsi|gned lon|
|000029c0| 67 20 69 6e 64 65 78 29 | 0d 09 7b 0d 09 52 65 6d |g index)|..{..Rem|
|000029d0| 6f 76 65 4e 6f 54 72 69 | 6d 28 69 6e 64 65 78 29 |oveNoTri|m(index)|
|000029e0| 3b 0d 09 54 72 69 6d 28 | 29 3b 0d 09 7d 20 0d 0d |;..Trim(|);..} ..|
|000029f0| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00002a00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 54 4c |--------|--.// TL|
|00002a50| 69 73 74 3a 3a 52 65 6d | 6f 76 65 4e 6f 54 72 69 |ist::Rem|oveNoTri|
|00002a60| 6d 3a 20 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |m: .//--|--------|
|00002a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002a90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002aa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ab0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 76 |--------|------.v|
|00002ac0| 6f 69 64 20 54 4c 69 73 | 74 3a 3a 52 65 6d 6f 76 |oid TLis|t::Remov|
|00002ad0| 65 4e 6f 54 72 69 6d 28 | 63 6f 6e 73 74 20 76 6f |eNoTrim(|const vo|
|00002ae0| 69 64 2a 20 69 74 65 6d | 29 0d 09 7b 0d 09 6c 6f |id* item|)..{..lo|
|00002af0| 6e 67 20 69 6e 64 65 78 | 20 3d 20 42 79 74 65 49 |ng index| = ByteI|
|00002b00| 6e 64 65 78 28 69 74 65 | 6d 29 3b 0d 09 69 66 28 |ndex(ite|m);..if(|
|00002b10| 69 6e 64 65 78 20 21 3d | 20 6b 42 79 74 65 49 74 |index !=| kByteIt|
|00002b20| 65 6d 4e 6f 74 46 6f 75 | 6e 64 29 0d 09 09 52 65 |emNotFou|nd)...Re|
|00002b30| 6d 6f 76 65 4e 6f 54 72 | 69 6d 28 69 6e 64 65 78 |moveNoTr|im(index|
|00002b40| 29 3b 0d 09 7d 20 0d 0d | 2f 2f 2d 2d 2d 2d 2d 2d |);..} ..|//------|
|00002b50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002b90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ba0| 2d 2d 0d 2f 2f 20 54 4c | 69 73 74 3a 3a 52 65 6d |--.// TL|ist::Rem|
|00002bb0| 6f 76 65 3a 20 0d 2f 2f | 2d 2d 2d 2d 2d 2d 2d 2d |ove: .//|--------|
|00002bc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002bd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002be0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002bf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c10| 0d 76 6f 69 64 20 54 4c | 69 73 74 3a 3a 52 65 6d |.void TL|ist::Rem|
|00002c20| 6f 76 65 28 63 6f 6e 73 | 74 20 76 6f 69 64 2a 20 |ove(cons|t void* |
|00002c30| 69 74 65 6d 29 0d 09 7b | 0d 09 52 65 6d 6f 76 65 |item)..{|..Remove|
|00002c40| 4e 6f 54 72 69 6d 28 69 | 74 65 6d 29 3b 0d 09 54 |NoTrim(i|tem);..T|
|00002c50| 72 69 6d 28 29 3b 0d 09 | 7d 0d 09 0d 0d 2f 2f 2d |rim();..|}....//-|
|00002c60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002c90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002ca0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002cb0| 2d 2d 2d 2d 2d 2d 2d 0d | 2f 2f 20 54 4c 69 73 74 |-------.|// TList|
|00002cc0| 3a 3a 52 65 6d 6f 76 65 | 41 6c 6c 4e 6f 54 72 69 |::Remove|AllNoTri|
|00002cd0| 6d 3a 20 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |m: .//--|--------|
|00002ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002d20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 76 |--------|------.v|
|00002d30| 6f 69 64 20 54 4c 69 73 | 74 3a 3a 52 65 6d 6f 76 |oid TLis|t::Remov|
|00002d40| 65 41 6c 6c 4e 6f 54 72 | 69 6d 28 29 0d 09 7b 0d |eAllNoTr|im()..{.|
|00002d50| 09 41 53 53 45 52 54 28 | 66 4e 75 6d 4c 6f 6f 70 |.ASSERT(|fNumLoop|
|00002d60| 73 20 3d 3d 20 30 29 3b | 0d 0d 09 2f 2f 0d 09 2f |s == 0);|...//../|
|00002d70| 2f 20 49 6e 66 6f 72 6d | 20 74 68 65 20 72 65 6d |/ Inform| the rem|
|00002d80| 6f 76 65 64 20 69 74 65 | 6d 73 20 74 68 61 74 20 |oved ite|ms that |
|00002d90| 77 65 20 6e 6f 20 6c 6f | 6e 67 65 72 20 63 61 72 |we no lo|nger car|
|00002da0| 65 20 61 62 6f 75 74 20 | 74 68 65 69 72 20 64 65 |e about |their de|
|00002db0| 6c 65 74 65 20 6e 6f 74 | 69 66 69 63 61 74 69 6f |lete not|ificatio|
|00002dc0| 6e 2e 0d 09 2f 2f 20 4e | 4f 54 45 3a 20 4f 6e 6c |n...// N|OTE: Onl|
|00002dd0| 79 20 75 73 65 20 64 65 | 6c 65 74 65 20 6e 6f 74 |y use de|lete not|
|00002de0| 69 66 69 63 61 74 69 6f | 6e 20 66 6f 72 20 54 4f |ificatio|n for TO|
|00002df0| 62 6a 65 63 74 4c 69 73 | 74 73 21 0d 09 2f 2f 0d |bjectLis|ts!..//.|
|00002e00| 09 69 66 20 28 66 55 73 | 65 44 65 6c 65 74 65 4e |.if (fUs|eDeleteN|
|00002e10| 6f 74 69 66 69 63 61 74 | 69 6f 6e 29 0d 09 09 7b |otificat|ion)...{|
|00002e20| 0d 09 09 46 4f 52 45 41 | 43 48 49 54 45 4d 28 74 |...FOREA|CHITEM(t|
|00002e30| 68 69 73 29 0d 09 09 09 | 28 28 54 4f 62 6a 65 63 |his)....|((TObjec|
|00002e40| 74 2a 29 69 74 65 6d 29 | 2d 3e 52 65 67 69 73 74 |t*)item)|->Regist|
|00002e50| 65 72 46 6f 72 44 65 6c | 65 74 65 4e 6f 74 69 66 |erForDel|eteNotif|
|00002e60| 69 63 61 74 69 6f 6e 28 | 74 68 69 73 2c 20 6b 55 |ication(|this, kU|
|00002e70| 6e 72 65 67 69 73 74 65 | 72 46 6f 72 44 65 6c 65 |nregiste|rForDele|
|00002e80| 74 65 4e 6f 74 69 66 69 | 63 61 74 69 6f 6e 29 3b |teNotifi|cation);|
|00002e90| 0d 09 09 7d 0d 0d 23 69 | 66 64 65 66 20 44 45 42 |...}..#i|fdef DEB|
|00002ea0| 55 47 0d 09 2f 2f 20 2a | 2a 2a 20 73 68 6f 75 6c |UG..// *|** shoul|
|00002eb0| 64 20 66 69 6c 6c 20 77 | 69 74 68 20 6b 42 61 64 |d fill w|ith kBad|
|00002ec0| 41 64 64 72 65 73 73 0d | 23 65 6e 64 69 66 0d 09 |Address.|#endif..|
|00002ed0| 66 42 79 74 65 43 6f 75 | 6e 74 20 3d 20 30 3b 0d |fByteCou|nt = 0;.|
|00002ee0| 09 7d 0d 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |.}..//--|--------|
|00002ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f10| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f20| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 2f |--------|------./|
|00002f40| 2f 20 54 4c 69 73 74 3a | 3a 52 65 6d 6f 76 65 41 |/ TList:|:RemoveA|
|00002f50| 6c 6c 3a 20 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ll: .//-|--------|
|00002f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002f90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00002fa0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00002fb0| 76 6f 69 64 20 54 4c 69 | 73 74 3a 3a 52 65 6d 6f |void TLi|st::Remo|
|00002fc0| 76 65 41 6c 6c 28 29 0d | 09 7b 0d 09 52 65 6d 6f |veAll().|.{..Remo|
|00002fd0| 76 65 41 6c 6c 4e 6f 54 | 72 69 6d 28 29 3b 0d 09 |veAllNoT|rim();..|
|00002fe0| 54 72 69 6d 28 29 3b 0d | 09 7d 20 0d 0d 0d 2f 2f |Trim();.|.} ...//|
|00002ff0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003000| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003010| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003020| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003030| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003040| 2d 2d 2d 2d 2d 2d 2d 2d | 0d 2f 2f 20 54 4c 69 73 |--------|.// TLis|
|00003050| 74 3a 3a 4e 65 78 74 3a | 20 0d 2f 2f 2d 2d 2d 2d |t::Next:| .//----|
|00003060| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003070| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003080| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003090| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000030b0| 2d 2d 2d 2d 0d 76 6f 69 | 64 2a 20 54 4c 69 73 74 |----.voi|d* TList|
|000030c0| 3a 3a 4e 65 78 74 28 63 | 6f 6e 73 74 20 76 6f 69 |::Next(c|onst voi|
|000030d0| 64 2a 20 69 74 65 6d 29 | 0d 09 7b 0d 09 69 66 20 |d* item)|..{..if |
|000030e0| 28 21 69 74 65 6d 29 20 | 0d 09 09 72 65 74 75 72 |(!item) |...retur|
|000030f0| 6e 20 46 69 72 73 74 28 | 29 3b 0d 0d 09 6c 6f 6e |n First(|);...lon|
|00003100| 67 20 69 6e 64 65 78 20 | 3d 20 42 79 74 65 49 6e |g index |= ByteIn|
|00003110| 64 65 78 28 69 74 65 6d | 29 3b 0d 0d 09 69 66 20 |dex(item|);...if |
|00003120| 28 69 6e 64 65 78 20 3d | 3d 20 6b 42 79 74 65 49 |(index =|= kByteI|
|00003130| 74 65 6d 4e 6f 74 46 6f | 75 6e 64 29 09 09 2f 2f |temNotFo|und)..//|
|00003140| 20 2a 2a 2a 20 73 68 6f | 75 6c 64 6e 27 74 20 68 | *** sho|uldn't h|
|00003150| 61 70 70 65 6e 20 62 65 | 63 61 75 73 65 20 6c 61 |appen be|cause la|
|00003160| 73 74 20 69 74 65 6d 20 | 77 61 73 20 73 75 70 70 |st item |was supp|
|00003170| 6f 73 65 64 20 74 6f 20 | 62 65 20 69 6e 20 6c 69 |osed to |be in li|
|00003180| 73 74 0d 09 09 7b 0d 09 | 09 41 53 53 45 52 54 28 |st...{..|.ASSERT(|
|00003190| 66 61 6c 73 65 29 3b 0d | 09 09 72 65 74 75 72 6e |false);.|..return|
|000031a0| 20 6e 69 6c 3b 0d 09 09 | 7d 0d 0d 09 69 6e 64 65 | nil;...|}...inde|
|000031b0| 78 20 3d 20 69 6e 64 65 | 78 20 2b 20 6b 49 74 65 |x = inde|x + kIte|
|000031c0| 6d 53 69 7a 65 3b 09 09 | 09 2f 2f 20 67 6f 20 74 |mSize;..|.// go t|
|000031d0| 6f 20 6e 65 78 74 20 69 | 74 65 6d 0d 0d 09 69 66 |o next i|tem...if|
|000031e0| 20 28 69 6e 64 65 78 20 | 3d 3d 20 66 42 79 74 65 | (index |== fByte|
|000031f0| 43 6f 75 6e 74 29 09 09 | 09 2f 2f 20 6c 61 73 74 |Count)..|.// last|
|00003200| 20 69 74 65 6d 3f 0d 09 | 09 72 65 74 75 72 6e 20 | item?..|.return |
|00003210| 6e 69 6c 3b 0d 0d 09 72 | 65 74 75 72 6e 20 42 79 |nil;...r|eturn By|
|00003220| 74 65 49 74 68 28 69 6e | 64 65 78 29 3b 0d 09 7d |teIth(in|dex);..}|
|00003230| 20 2f 2f 20 54 4c 69 73 | 74 3a 3a 4e 65 78 74 20 | // TLis|t::Next |
|00003240| 0d 0d 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...//---|--------|
|00003250| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003260| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003270| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003280| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003290| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 2f 2f |--------|-----.//|
|000032a0| 20 54 4c 69 73 74 3a 3a | 50 72 65 76 69 6f 75 73 | TList::|Previous|
|000032b0| 3a 20 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |: .//---|--------|
|000032c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000032d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000032e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000032f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003300| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 76 6f |--------|-----.vo|
|00003310| 69 64 2a 20 54 4c 69 73 | 74 3a 3a 50 72 65 76 69 |id* TLis|t::Previ|
|00003320| 6f 75 73 28 63 6f 6e 73 | 74 20 76 6f 69 64 2a 20 |ous(cons|t void* |
|00003330| 69 74 65 6d 29 0d 09 7b | 0d 09 69 66 20 28 21 69 |item)..{|..if (!i|
|00003340| 74 65 6d 29 20 72 65 74 | 75 72 6e 20 4c 61 73 74 |tem) ret|urn Last|
|00003350| 28 29 3b 0d 0d 09 6c 6f | 6e 67 20 69 6e 64 65 78 |();...lo|ng index|
|00003360| 20 3d 20 42 79 74 65 49 | 6e 64 65 78 28 69 74 65 | = ByteI|ndex(ite|
|00003370| 6d 29 3b 0d 0d 09 2f 2f | 0d 09 2f 2f 20 53 68 6f |m);...//|..// Sho|
|00003380| 75 6c 64 6e 27 74 20 68 | 61 70 70 65 6e 20 62 65 |uldn't h|appen be|
|00003390| 63 61 75 73 65 20 6c 61 | 73 74 20 69 74 65 6d 20 |cause la|st item |
|000033a0| 77 61 73 20 73 75 70 70 | 6f 73 65 64 20 74 6f 20 |was supp|osed to |
|000033b0| 62 65 20 69 6e 20 6c 69 | 73 74 0d 09 2f 2f 0d 09 |be in li|st..//..|
|000033c0| 69 66 20 28 28 69 6e 64 | 65 78 20 3d 3d 20 6b 42 |if ((ind|ex == kB|
|000033d0| 79 74 65 49 74 65 6d 4e | 6f 74 46 6f 75 6e 64 29 |yteItemN|otFound)|
|000033e0| 20 7c 7c 20 28 69 6e 64 | 65 78 20 3d 3d 20 30 29 | || (ind|ex == 0)|
|000033f0| 29 0d 09 09 72 65 74 75 | 72 6e 20 6e 69 6c 3b 0d |)...retu|rn nil;.|
|00003400| 0d 09 69 6e 64 65 78 20 | 3d 20 69 6e 64 65 78 20 |..index |= index |
|00003410| 2d 20 6b 49 74 65 6d 53 | 69 7a 65 3b 09 09 09 09 |- kItemS|ize;....|
|00003420| 2f 2f 20 67 6f 20 74 6f | 20 70 72 65 76 69 6f 75 |// go to| previou|
|00003430| 73 20 69 74 65 6d 0d 0d | 09 72 65 74 75 72 6e 20 |s item..|.return |
|00003440| 42 79 74 65 49 74 68 28 | 69 6e 64 65 78 29 3b 0d |ByteIth(|index);.|
|00003450| 09 7d 20 2f 2f 20 54 4c | 69 73 74 3a 3a 50 72 65 |.} // TL|ist::Pre|
|00003460| 76 69 6f 75 73 20 0d 0d | 2f 2f 2d 2d 2d 2d 2d 2d |vious ..|//------|
|00003470| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003480| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003490| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000034a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000034b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000034c0| 2d 2d 0d 2f 2f 20 54 4c | 69 73 74 3a 3a 47 75 65 |--.// TL|ist::Gue|
|000034d0| 73 73 3a 20 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ss: .//-|--------|
|000034e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000034f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003500| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003510| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00003530| 76 6f 69 64 20 54 4c 69 | 73 74 3a 3a 47 75 65 73 |void TLi|st::Gues|
|00003540| 73 28 75 6e 73 69 67 6e | 65 64 20 73 68 6f 72 74 |s(unsign|ed short|
|00003550| 20 6e 65 77 53 69 7a 65 | 29 0d 09 7b 0d 09 6e 65 | newSize|)..{..ne|
|00003560| 77 53 69 7a 65 20 3c 3c | 3d 20 32 3b 0d 0d 09 69 |wSize <<|= 2;...i|
|00003570| 66 20 28 6e 65 77 53 69 | 7a 65 20 3e 20 66 42 79 |f (newSi|ze > fBy|
|00003580| 74 65 43 6f 75 6e 74 20 | 26 26 20 6e 65 77 53 69 |teCount |&& newSi|
|00003590| 7a 65 20 3e 20 42 79 74 | 65 53 69 7a 65 28 29 29 |ze > Byt|eSize())|
|000035a0| 0d 09 09 53 65 74 53 69 | 7a 65 28 6e 65 77 53 69 |...SetSi|ze(newSi|
|000035b0| 7a 65 29 3b 09 09 09 2f | 2f 20 2a 2a 2a 20 73 68 |ze);.../|/ *** sh|
|000035c0| 6f 75 6c 64 20 74 68 69 | 73 20 66 61 69 6c 75 72 |ould thi|s failur|
|000035d0| 65 20 62 65 20 69 67 6e | 6f 72 65 64 3f 0d 09 7d |e be ign|ored?..}|
|000035e0| 20 2f 2f 20 54 4c 69 73 | 74 3a 3a 47 75 65 73 73 | // TLis|t::Guess|
|000035f0| 20 0d 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d | ..//---|--------|
|00003600| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003610| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003620| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003630| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003640| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 2f 2f |--------|-----.//|
|00003650| 20 54 4c 69 73 74 3a 3a | 54 72 69 6d 3a 20 0d 2f | TList::|Trim: ./|
|00003660| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00003670| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000036b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 76 6f 69 64 20 54 |--------|-.void T|
|000036c0| 4c 69 73 74 3a 3a 54 72 | 69 6d 28 75 6e 73 69 67 |List::Tr|im(unsig|
|000036d0| 6e 65 64 20 6c 6f 6e 67 | 20 63 6f 75 6e 74 20 2f |ned long| count /|
|000036e0| 2a 20 3d 20 30 20 2a 2f | 29 0d 09 7b 0d 09 41 53 |* = 0 */|)..{..AS|
|000036f0| 53 45 52 54 28 66 42 79 | 74 65 43 6f 75 6e 74 20 |SERT(fBy|teCount |
|00003700| 3c 3d 20 42 79 74 65 53 | 69 7a 65 28 29 29 3b 0d |<= ByteS|ize());.|
|00003710| 0d 09 63 6f 75 6e 74 20 | 20 3c 3c 3d 20 32 3b 0d |..count | <<= 2;.|
|00003720| 0d 09 69 66 20 28 66 42 | 79 74 65 43 6f 75 6e 74 |..if (fB|yteCount|
|00003730| 20 3c 20 42 79 74 65 53 | 69 7a 65 28 29 20 26 26 | < ByteS|ize() &&|
|00003740| 20 66 42 79 74 65 43 6f | 75 6e 74 20 3c 3d 20 63 | fByteCo|unt <= c|
|00003750| 6f 75 6e 74 29 0d 09 09 | 53 65 74 53 69 7a 65 28 |ount)...|SetSize(|
|00003760| 63 6f 75 6e 74 29 3b 0d | 09 7d 20 2f 2f 20 54 4c |count);.|.} // TL|
|00003770| 69 73 74 3a 3a 54 72 69 | 6d 20 0d 09 0d 09 0d 2f |ist::Tri|m ...../|
|00003780| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00003790| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000037d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 20 54 4c 69 |--------|-.// TLi|
|000037e0| 73 74 3a 3a 55 73 65 44 | 65 6c 65 74 65 4e 6f 74 |st::UseD|eleteNot|
|000037f0| 69 66 69 63 61 74 69 6f | 6e 3a 20 0d 2f 2f 0d 2f |ificatio|n: .//./|
|00003800| 2f 20 49 4d 50 4f 52 54 | 41 4e 54 3a 20 20 4f 6e |/ IMPORT|ANT: On|
|00003810| 6c 79 20 63 61 6c 6c 20 | 74 68 69 73 20 6d 65 74 |ly call |this met|
|00003820| 68 6f 64 20 6f 6e 20 54 | 4f 62 6a 65 63 74 4c 69 |hod on T|ObjectLi|
|00003830| 73 74 73 21 20 20 28 54 | 6f 20 64 6f 3a 20 20 6d |sts! (T|o do: m|
|00003840| 6f 76 65 20 74 68 69 73 | 20 6d 65 74 68 6f 64 0d |ove this| method.|
|00003850| 2f 2f 20 64 6f 77 6e 20 | 74 6f 20 54 4f 62 6a 65 |// down |to TObje|
|00003860| 63 74 4c 69 73 74 21 29 | 0d 2f 2f 2d 2d 2d 2d 2d |ctList!)|.//-----|
|00003870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003890| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000038c0| 2d 2d 2d 0d 76 6f 69 64 | 20 54 4c 69 73 74 3a 3a |---.void| TList::|
|000038d0| 55 73 65 44 65 6c 65 74 | 65 4e 6f 74 69 66 69 63 |UseDelet|eNotific|
|000038e0| 61 74 69 6f 6e 28 29 0d | 09 7b 0d 09 69 66 20 28 |ation().|.{..if (|
|000038f0| 66 55 73 65 44 65 6c 65 | 74 65 4e 6f 74 69 66 69 |fUseDele|teNotifi|
|00003900| 63 61 74 69 6f 6e 20 3d | 3d 20 66 61 6c 73 65 29 |cation =|= false)|
|00003910| 0d 09 09 7b 0d 09 09 46 | 4f 52 45 41 43 48 49 54 |...{...F|OREACHIT|
|00003920| 45 4d 28 74 68 69 73 29 | 0d 09 09 09 28 28 54 4f |EM(this)|....((TO|
|00003930| 62 6a 65 63 74 2a 29 69 | 74 65 6d 29 2d 3e 52 65 |bject*)i|tem)->Re|
|00003940| 67 69 73 74 65 72 46 6f | 72 44 65 6c 65 74 65 4e |gisterFo|rDeleteN|
|00003950| 6f 74 69 66 69 63 61 74 | 69 6f 6e 28 74 68 69 73 |otificat|ion(this|
|00003960| 2c 20 6b 52 65 67 69 73 | 74 65 72 46 6f 72 44 65 |, kRegis|terForDe|
|00003970| 6c 65 74 65 4e 6f 74 69 | 66 69 63 61 74 69 6f 6e |leteNoti|fication|
|00003980| 29 3b 0d 09 09 66 55 73 | 65 44 65 6c 65 74 65 4e |);...fUs|eDeleteN|
|00003990| 6f 74 69 66 69 63 61 74 | 69 6f 6e 20 3d 20 74 72 |otificat|ion = tr|
|000039a0| 75 65 3b 0d 09 09 7d 0d | 09 7d 20 0d 0d 2f 2f 2d |ue;...}.|.} ..//-|
|000039b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000039c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000039d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000039e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000039f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a00| 2d 2d 2d 2d 2d 2d 2d 0d | 2f 2f 20 54 4c 69 73 74 |-------.|// TList|
|00003a10| 3a 3a 49 74 65 6d 42 65 | 69 6e 67 44 65 6c 65 74 |::ItemBe|ingDelet|
|00003a20| 65 64 3a 20 0d 2f 2f 2d | 2d 2d 2d 2d 2d 2d 2d 2d |ed: .//-|--------|
|00003a30| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003a70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 0d |--------|-------.|
|00003a80| 76 6f 69 64 20 54 4c 69 | 73 74 3a 3a 49 74 65 6d |void TLi|st::Item|
|00003a90| 42 65 69 6e 67 44 65 6c | 65 74 65 64 28 63 6f 6e |BeingDel|eted(con|
|00003aa0| 73 74 20 54 4f 62 6a 65 | 63 74 2a 20 69 74 65 6d |st TObje|ct* item|
|00003ab0| 29 0d 09 7b 0d 09 41 53 | 53 45 52 54 28 66 55 73 |)..{..AS|SERT(fUs|
|00003ac0| 65 44 65 6c 65 74 65 4e | 6f 74 69 66 69 63 61 74 |eDeleteN|otificat|
|00003ad0| 69 6f 6e 29 3b 0d 09 41 | 53 53 45 52 54 28 66 53 |ion);..A|SSERT(fS|
|00003ae0| 68 6f 75 6c 64 4e 65 76 | 65 72 53 65 65 44 65 6c |houldNev|erSeeDel|
|00003af0| 65 74 69 6f 6e 20 3d 3d | 20 66 61 6c 73 65 29 3b |etion ==| false);|
|00003b00| 0d 09 6c 6f 6e 67 20 69 | 6e 64 65 78 20 3d 20 42 |..long i|ndex = B|
|00003b10| 79 74 65 49 6e 64 65 78 | 28 28 76 6f 69 64 2a 29 |yteIndex|((void*)|
|00003b20| 69 74 65 6d 29 3b 0d 09 | 41 53 53 45 52 54 28 69 |item);..|ASSERT(i|
|00003b30| 6e 64 65 78 20 21 3d 20 | 6b 42 79 74 65 49 74 65 |ndex != |kByteIte|
|00003b40| 6d 4e 6f 74 46 6f 75 6e | 64 29 3b 0d 09 0d 09 2f |mNotFoun|d);..../|
|00003b50| 2f 0d 09 2f 2f 20 49 66 | 20 74 68 65 20 69 74 65 |/..// If| the ite|
|00003b60| 6d 20 62 65 69 6e 67 20 | 64 65 6c 65 74 65 64 20 |m being |deleted |
|00003b70| 77 61 73 20 66 6f 75 6e | 64 20 69 6e 73 69 64 65 |was foun|d inside|
|00003b80| 20 74 68 69 73 20 6c 69 | 73 74 0d 09 2f 2f 20 28 | this li|st..// (|
|00003b90| 77 65 20 65 78 70 65 63 | 74 20 69 74 20 77 69 6c |we expec|t it wil|
|00003ba0| 6c 2d 2d 6f 74 68 65 72 | 77 69 73 65 20 77 65 20 |l--other|wise we |
|00003bb0| 77 6f 75 6c 64 20 6e 6f | 74 20 68 61 76 65 20 72 |would no|t have r|
|00003bc0| 65 67 69 73 74 65 72 65 | 64 0d 09 2f 2f 20 66 6f |egistere|d..// fo|
|00003bd0| 72 20 64 65 6c 65 74 65 | 20 6e 6f 74 69 66 69 63 |r delete| notific|
|00003be0| 61 74 69 6f 6e 29 2c 20 | 74 68 65 6e 20 63 61 6c |ation), |then cal|
|00003bf0| 6c 20 27 52 65 6d 6f 76 | 65 4e 6f 54 72 69 6d 4e |l 'Remov|eNoTrimN|
|00003c00| 6f 55 6e 72 65 67 69 73 | 74 65 72 2e 27 0d 09 2f |oUnregis|ter.'../|
|00003c10| 2f 20 57 65 20 64 6f 6e | 27 74 20 77 61 6e 74 20 |/ We don|'t want |
|00003c20| 74 6f 20 75 6e 72 65 67 | 69 73 74 65 72 20 61 6e |to unreg|ister an|
|00003c30| 20 69 74 65 6d 20 66 6f | 72 20 64 65 6c 65 74 65 | item fo|r delete|
|00003c40| 20 6e 6f 74 69 66 69 63 | 61 74 69 6f 6e 0d 09 2f | notific|ation../|
|00003c50| 2f 20 69 66 20 69 74 20 | 69 73 20 62 65 69 6e 67 |/ if it |is being|
|00003c60| 20 64 65 6c 65 74 65 64 | 21 0d 09 2f 2f 0d 09 69 | deleted|!..//..i|
|00003c70| 66 20 28 69 6e 64 65 78 | 20 21 3d 20 6b 42 79 74 |f (index| != kByt|
|00003c80| 65 49 74 65 6d 4e 6f 74 | 46 6f 75 6e 64 29 09 0d |eItemNot|Found)..|
|00003c90| 09 09 52 65 6d 6f 76 65 | 4e 6f 54 72 69 6d 4e 6f |..Remove|NoTrimNo|
|00003ca0| 55 6e 72 65 67 69 73 74 | 65 72 28 69 6e 64 65 78 |Unregist|er(index|
|00003cb0| 29 3b 0d 09 7d 20 0d 0d | 2f 2f 2d 2d 2d 2d 2d 2d |);..} ..|//------|
|00003cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003d10| 2d 2d 0d 2f 2f 20 54 4c | 69 73 74 3a 3a 52 65 70 |--.// TL|ist::Rep|
|00003d20| 6c 61 63 65 3a 20 0d 2f | 2f 0d 2f 2f 20 52 65 70 |lace: ./|/.// Rep|
|00003d30| 6c 61 63 65 20 74 68 65 | 20 69 74 65 6d 20 77 69 |lace the| item wi|
|00003d40| 74 68 20 74 68 65 20 67 | 69 76 65 6e 20 69 6e 64 |th the g|iven ind|
|00003d50| 65 78 20 77 69 74 68 20 | 6e 65 77 49 74 65 6d 0d |ex with |newItem.|
|00003d60| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|00003d70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003d80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003d90| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003da0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003db0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 76 6f 69 64 2a |--------|--.void*|
|00003dc0| 20 54 4c 69 73 74 3a 3a | 52 65 70 6c 61 63 65 28 | TList::|Replace(|
|00003dd0| 75 6e 73 69 67 6e 65 64 | 20 6c 6f 6e 67 20 69 6e |unsigned| long in|
|00003de0| 64 65 78 2c 20 76 6f 69 | 64 2a 20 6e 65 77 49 74 |dex, voi|d* newIt|
|00003df0| 65 6d 29 0d 09 7b 0d 09 | 49 4e 4c 49 4e 45 41 53 |em)..{..|INLINEAS|
|00003e00| 53 45 52 54 28 69 6e 64 | 65 78 20 3c 20 66 42 79 |SERT(ind|ex < fBy|
|00003e10| 74 65 43 6f 75 6e 74 29 | 3b 0d 0d 09 76 6f 69 64 |teCount)|;...void|
|00003e20| 2a 20 6f 6c 64 49 74 65 | 6d 20 3d 20 28 76 6f 69 |* oldIte|m = (voi|
|00003e30| 64 2a 29 20 66 4f 62 6a | 65 63 74 42 6c 6f 63 6b |d*) fObj|ectBlock|
|00003e40| 43 61 63 68 65 2e 47 65 | 74 55 49 6e 74 33 32 28 |Cache.Ge|tUInt32(|
|00003e50| 69 6e 64 65 78 29 3b 0d | 09 66 4f 62 6a 65 63 74 |index);.|.fObject|
|00003e60| 42 6c 6f 63 6b 43 61 63 | 68 65 2e 53 65 74 28 20 |BlockCac|he.Set( |
|00003e70| 28 55 49 6e 74 33 32 29 | 20 6e 65 77 49 74 65 6d |(UInt32)| newItem|
|00003e80| 2c 20 28 55 49 6e 74 33 | 32 29 20 69 6e 64 65 78 |, (UInt3|2) index|
|00003e90| 29 3b 0d 0d 09 72 65 74 | 75 72 6e 20 6f 6c 64 49 |);...ret|urn oldI|
|00003ea0| 74 65 6d 3b 0d 09 7d 20 | 2f 2f 20 54 4c 69 73 74 |tem;..} |// TList|
|00003eb0| 3a 3a 52 65 70 6c 61 63 | 65 20 0d 0d 2f 2f 2d 2d |::Replac|e ..//--|
|00003ec0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ed0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ee0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003ef0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f10| 2d 2d 2d 2d 2d 2d 0d 2f | 2f 20 54 4c 69 73 74 3a |------./|/ TList:|
|00003f20| 3a 41 73 73 65 72 74 4e | 6f 4c 6f 6f 70 73 0d 2f |:AssertN|oLoops./|
|00003f30| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00003f40| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f50| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f60| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f70| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00003f80| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 23 69 66 64 65 66 |--------|-.#ifdef|
|00003f90| 20 44 45 42 55 47 0d 76 | 6f 69 64 20 54 4c 69 73 | DEBUG.v|oid TLis|
|00003fa0| 74 3a 3a 41 73 73 65 72 | 74 4e 6f 4c 6f 6f 70 73 |t::Asser|tNoLoops|
|00003fb0| 28 29 0d 09 7b 0d 09 41 | 53 53 45 52 54 50 52 49 |()..{..A|SSERTPRI|
|00003fc0| 4e 54 28 66 4e 75 6d 4c | 6f 6f 70 73 20 3d 3d 20 |NT(fNumL|oops == |
|00003fd0| 30 2c 20 28 22 4c 69 73 | 74 20 68 61 73 20 6c 6f |0, ("Lis|t has lo|
|00003fe0| 6f 70 73 22 29 29 3b 0d | 09 7d 0d 23 65 6e 64 69 |ops"));.|.}.#endi|
|00003ff0| 66 0d 0d 2f 2f 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |f..//===|========|
|00004000| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004010| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004020| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004030| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004040| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 0d 2f 2f |========|=====.//|
|00004050| 20 43 4c 41 53 53 20 54 | 44 65 6c 65 74 65 4e 6f | CLASS T|DeleteNo|
|00004060| 74 69 66 69 63 61 74 69 | 6f 6e 52 65 67 69 73 74 |tificati|onRegist|
|00004070| 72 65 65 4c 69 73 74 0d | 2f 2f 3d 3d 3d 3d 3d 3d |reeList.|//======|
|00004080| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004090| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000040a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000040b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000040c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000040d0| 3d 3d 0d 0d 49 4d 50 4c | 45 4d 45 4e 54 4c 49 53 |==..IMPL|EMENTLIS|
|000040e0| 54 28 54 44 65 6c 65 74 | 65 4e 6f 74 69 66 69 63 |T(TDelet|eNotific|
|000040f0| 61 74 69 6f 6e 52 65 67 | 69 73 74 72 65 65 4c 69 |ationReg|istreeLi|
|00004100| 73 74 2c 20 54 43 61 6e | 52 65 63 65 69 76 65 44 |st, TCan|ReceiveD|
|00004110| 65 6c 65 74 65 4e 6f 74 | 69 66 69 63 61 74 69 6f |eleteNot|ificatio|
|00004120| 6e 29 3b 0d 0d 0d 2f 2f | 3d 3d 3d 3d 3d 3d 3d 3d |n);...//|========|
|00004130| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004140| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004150| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004160| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004170| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|00004180| 0d 2f 2f 20 43 4c 41 53 | 53 20 54 4f 62 6a 65 63 |.// CLAS|S TObjec|
|00004190| 74 4c 69 73 74 0d 2f 2f | 3d 3d 3d 3d 3d 3d 3d 3d |tList.//|========|
|000041a0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000041b0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000041c0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000041d0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000041e0| 3d 3d 3d 3d 3d 3d 3d 3d | 3d 3d 3d 3d 3d 3d 3d 3d |========|========|
|000041f0| 0d 0d 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |...//---|--------|
|00004200| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004210| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004220| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004230| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004240| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 2f 2f |--------|-----.//|
|00004250| 20 54 4f 62 6a 65 63 74 | 4c 69 73 74 3a 3a 41 64 | TObject|List::Ad|
|00004260| 64 55 6e 69 71 75 65 42 | 79 4b 65 79 3a 20 63 6c |dUniqueB|yKey: cl|
|00004270| 61 73 73 20 54 4f 62 6a | 65 63 74 4c 69 73 74 0d |ass TObj|ectList.|
|00004280| 2f 2f 0d 2f 2f 20 2a 2a | 2a 20 63 6f 75 6c 64 20 |//.// **|* could |
|00004290| 75 73 65 20 49 6e 64 65 | 78 20 61 6e 64 20 52 65 |use Inde|x and Re|
|000042a0| 70 6c 61 63 65 42 79 4b | 65 79 0d 2f 2f 2d 2d 2d |placeByK|ey.//---|
|000042b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000042c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000042d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000042e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000042f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004300| 2d 2d 2d 2d 2d 0d 42 6f | 6f 6c 65 61 6e 20 54 4f |-----.Bo|olean TO|
|00004310| 62 6a 65 63 74 4c 69 73 | 74 3a 3a 41 64 64 55 6e |bjectLis|t::AddUn|
|00004320| 69 71 75 65 42 79 4b 65 | 79 28 54 4f 62 6a 65 63 |iqueByKe|y(TObjec|
|00004330| 74 2a 20 61 64 64 29 0d | 09 7b 0d 09 41 53 53 45 |t* add).|.{..ASSE|
|00004340| 52 54 28 61 64 64 29 3b | 0d 09 41 53 53 45 52 54 |RT(add);|..ASSERT|
|00004350| 28 66 4e 75 6d 4c 6f 6f | 70 73 20 3d 3d 20 30 29 |(fNumLoo|ps == 0)|
|00004360| 3b 0d 09 54 4f 62 6a 65 | 63 74 2a 20 65 78 69 73 |;..TObje|ct* exis|
|00004370| 74 69 6e 67 20 3d 20 4c | 6f 6f 6b 75 70 28 61 64 |ting = L|ookup(ad|
|00004380| 64 2d 3e 4b 65 79 28 29 | 29 3b 0d 0d 09 69 66 20 |d->Key()|);...if |
|00004390| 28 65 78 69 73 74 69 6e | 67 29 20 2f 2f 20 66 6f |(existin|g) // fo|
|000043a0| 75 6e 64 20 61 6e 20 6f | 62 6a 65 63 74 20 77 69 |und an o|bject wi|
|000043b0| 74 68 20 74 68 65 20 72 | 69 67 68 74 20 6b 65 79 |th the r|ight key|
|000043c0| 0d 09 09 7b 0d 09 09 2f | 2f 20 69 66 20 69 74 27 |...{.../|/ if it'|
|000043d0| 73 20 74 68 65 20 73 61 | 6d 65 20 6f 62 6a 65 63 |s the sa|me objec|
|000043e0| 74 2c 20 73 6b 69 70 20 | 6f 75 74 2e 0d 09 09 69 |t, skip |out....i|
|000043f0| 66 20 28 65 78 69 73 74 | 69 6e 67 20 3d 3d 20 61 |f (exist|ing == a|
|00004400| 64 64 29 0d 09 09 09 72 | 65 74 75 72 6e 20 66 61 |dd)....r|eturn fa|
|00004410| 6c 73 65 3b 09 2f 2f 20 | 72 65 74 75 72 6e 20 69 |lse;.// |return i|
|00004420| 6e 64 69 63 61 74 69 6f | 6e 20 74 68 61 74 20 74 |ndicatio|n that t|
|00004430| 68 65 79 20 61 72 65 20 | 73 61 6d 65 0d 0d 0d 09 |hey are |same....|
|00004440| 09 52 65 6d 6f 76 65 28 | 65 78 69 73 74 69 6e 67 |.Remove(|existing|
|00004450| 29 3b 20 2f 2f 20 6e 6f | 74 20 74 68 65 20 73 61 |); // no|t the sa|
|00004460| 6d 65 20 6f 62 6a 65 63 | 74 3b 20 72 65 70 6c 61 |me objec|t; repla|
|00004470| 63 65 20 74 68 65 20 65 | 78 69 73 74 69 6e 67 20 |ce the e|xisting |
|00004480| 6f 62 6a 65 63 74 2e 0d | 09 09 64 65 6c 65 74 65 |object..|..delete|
|00004490| 20 65 78 69 73 74 69 6e | 67 3b 0d 09 09 7d 0d 0d | existin|g;...}..|
|000044a0| 09 41 64 64 28 61 64 64 | 29 3b 09 09 09 2f 2f 20 |.Add(add|);...// |
|000044b0| 61 64 64 20 6e 65 77 20 | 6f 62 6a 65 63 74 0d 09 |add new |object..|
|000044c0| 72 65 74 75 72 6e 20 28 | 65 78 69 73 74 69 6e 67 |return (|existing|
|000044d0| 20 21 3d 20 6e 69 6c 29 | 3b 0d 09 7d 20 2f 2f 20 | != nil)|;..} // |
|000044e0| 54 4f 62 6a 65 63 74 4c | 69 73 74 3a 3a 41 64 64 |TObjectL|ist::Add|
|000044f0| 55 6e 69 71 75 65 42 79 | 4b 65 79 20 0d 0d 0d 2f |UniqueBy|Key .../|
|00004500| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00004510| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004520| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004530| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004540| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004550| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 2f 2f 20 54 4f 62 |--------|-.// TOb|
|00004560| 6a 65 63 74 4c 69 73 74 | 3a 3a 4c 6f 6f 6b 75 70 |jectList|::Lookup|
|00004570| 3a 20 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |: .//---|--------|
|00004580| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004590| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000045c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 54 4f |--------|-----.TO|
|000045d0| 62 6a 65 63 74 2a 20 54 | 4f 62 6a 65 63 74 4c 69 |bject* T|ObjectLi|
|000045e0| 73 74 3a 3a 4c 6f 6f 6b | 75 70 28 6c 6f 6e 67 20 |st::Look|up(long |
|000045f0| 6b 65 79 29 0d 09 7b 0d | 09 6c 6f 6e 67 20 69 6e |key)..{.|.long in|
|00004600| 64 65 78 20 3d 20 42 79 | 74 65 49 6e 64 65 78 28 |dex = By|teIndex(|
|00004610| 6b 65 79 29 3b 0d 0d 09 | 72 65 74 75 72 6e 20 28 |key);...|return (|
|00004620| 69 6e 64 65 78 20 3d 3d | 20 6b 42 79 74 65 49 74 |index ==| kByteIt|
|00004630| 65 6d 4e 6f 74 46 6f 75 | 6e 64 29 20 3f 20 6e 69 |emNotFou|nd) ? ni|
|00004640| 6c 20 3a 20 28 54 4f 62 | 6a 65 63 74 2a 29 20 42 |l : (TOb|ject*) B|
|00004650| 79 74 65 49 74 68 28 69 | 6e 64 65 78 29 3b 0d 09 |yteIth(i|ndex);..|
|00004660| 7d 20 2f 2f 20 54 4f 62 | 6a 65 63 74 4c 69 73 74 |} // TOb|jectList|
|00004670| 3a 3a 4c 6f 6f 6b 75 70 | 20 0d 0d 0d 2f 2f 2d 2d |::Lookup| ...//--|
|00004680| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004690| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000046a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000046b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000046c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000046d0| 2d 2d 2d 2d 2d 2d 0d 2f | 2f 20 54 4f 62 6a 65 63 |------./|/ TObjec|
|000046e0| 74 4c 69 73 74 3a 3a 46 | 6f 72 45 61 63 68 44 6f |tList::F|orEachDo|
|000046f0| 3a 20 0d 2f 2f 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |: .//---|--------|
|00004700| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004710| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004720| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004730| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004740| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 0d 76 6f |--------|-----.vo|
|00004750| 69 64 20 54 4f 62 6a 65 | 63 74 4c 69 73 74 3a 3a |id TObje|ctList::|
|00004760| 46 6f 72 45 61 63 68 44 | 6f 28 76 6f 69 64 20 28 |ForEachD|o(void (|
|00004770| 54 4f 62 6a 65 63 74 3a | 3a 2a 66 75 6e 63 29 28 |TObject:|:*func)(|
|00004780| 29 29 0d 09 7b 0d 09 46 | 4f 52 45 41 43 48 4f 42 |))..{..F|OREACHOB|
|00004790| 4a 45 43 54 28 74 68 69 | 73 29 0d 09 09 28 6f 62 |JECT(thi|s)...(ob|
|000047a0| 6a 65 63 74 2d 3e 2a 66 | 75 6e 63 29 28 29 3b 0d |ject->*f|unc)();.|
|000047b0| 09 7d 20 2f 2f 20 54 4f | 62 6a 65 63 74 4c 69 73 |.} // TO|bjectLis|
|000047c0| 74 3a 3a 46 6f 72 45 61 | 63 68 44 6f 20 0d 0d 0d |t::ForEa|chDo ...|
|000047d0| 2f 2f 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |//------|--------|
|000047e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000047f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004800| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004810| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004820| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 0d 2f 2f 20 54 4f |--------|--.// TO|
|00004830| 62 6a 65 63 74 4c 69 73 | 74 3a 3a 46 69 6e 64 46 |bjectLis|t::FindF|
|00004840| 69 72 73 74 53 75 63 68 | 54 68 61 74 3a 20 0d 2f |irstSuch|That: ./|
|00004850| 2f 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |/-------|--------|
|00004860| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004870| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004880| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004890| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000048a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 0d 54 4f 62 6a 65 63 |--------|-.TObjec|
|000048b0| 74 2a 20 54 4f 62 6a 65 | 63 74 4c 69 73 74 3a 3a |t* TObje|ctList::|
|000048c0| 46 69 6e 64 46 69 72 73 | 74 53 75 63 68 54 68 61 |FindFirs|tSuchTha|
|000048d0| 74 28 42 6f 6f 6c 65 61 | 6e 20 28 54 4f 62 6a 65 |t(Boolea|n (TObje|
|000048e0| 63 74 3a 3a 2a 66 75 6e | 63 29 28 63 6f 6e 73 74 |ct::*fun|c)(const|
|000048f0| 20 76 6f 69 64 2a 29 2c | 20 63 6f 6e 73 74 20 76 | void*),| const v|
|00004900| 6f 69 64 2a 20 72 65 66 | 43 6f 6e 29 0d 09 7b 0d |oid* ref|Con)..{.|
|00004910| 09 46 4f 52 45 41 43 48 | 4f 42 4a 45 43 54 28 74 |.FOREACH|OBJECT(t|
|00004920| 68 69 73 29 0d 09 09 69 | 66 20 28 28 6f 62 6a 65 |his)...i|f ((obje|
|00004930| 63 74 2d 3e 2a 66 75 6e | 63 29 28 72 65 66 43 6f |ct->*fun|c)(refCo|
|00004940| 6e 29 29 20 72 65 74 75 | 72 6e 20 6f 62 6a 65 63 |n)) retu|rn objec|
|00004950| 74 3b 0d 09 72 65 74 75 | 72 6e 20 6e 69 6c 3b 0d |t;..retu|rn nil;.|
|00004960| 09 7d 20 2f 2f 20 54 4f | 62 6a 65 63 74 4c 69 73 |.} // TO|bjectLis|
|00004970| 74 3a 3a 46 69 6e 64 46 | 69 72 73 74 53 75 63 68 |t::FindF|irstSuch|
|00004980| 54 68 61 74 0d 0d 0d 2f | 2f 2d 2d 2d 2d 2d 2d 2d |That.../|/-------|
|00004990| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000049a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000049b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000049c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000049d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000049e0| 2d 0d 2f 2f 20 54 4f 62 | 6a 65 63 74 4c 69 73 74 |-.// TOb|jectList|
|000049f0| 3a 3a 42 69 6e 61 72 79 | 53 65 61 72 63 68 3a 20 |::Binary|Search: |
|00004a00| 0d 2f 2f 0d 2f 2f 20 50 | 61 73 73 20 69 6e 20 61 |.//.// P|ass in a|
|00004a10| 20 66 75 6e 63 74 69 6f | 6e 20 6f 66 20 54 4f 62 | functio|n of TOb|
|00004a20| 6a 65 63 74 20 74 68 61 | 74 20 72 65 74 75 72 6e |ject tha|t return|
|00004a30| 73 20 6e 65 67 61 74 69 | 76 65 20 66 6f 72 20 27 |s negati|ve for '|
|00004a40| 6c 65 73 73 20 74 68 61 | 6e 27 2c 20 30 20 66 6f |less tha|n', 0 fo|
|00004a50| 72 20 27 65 71 75 61 6c | 27 2c 20 61 6e 64 0d 2f |r 'equal|', and./|
|00004a60| 2f 20 31 20 66 6f 72 20 | 27 67 72 65 61 74 65 72 |/ 1 for |'greater|
|00004a70| 20 74 68 61 6e 27 2e 20 | 20 55 6e 66 6f 72 74 75 | than'. | Unfortu|
|00004a80| 6e 61 74 65 6c 79 2c 20 | 74 68 65 20 69 74 65 6d |nately, |the item|
|00004a90| 20 62 65 69 6e 67 20 63 | 6f 6d 70 61 72 65 64 20 | being c|ompared |
|00004aa0| 6d 75 73 74 20 62 65 20 | 73 74 6f 72 65 64 20 69 |must be |stored i|
|00004ab0| 6e 20 61 0d 2f 2f 20 67 | 6c 6f 62 61 6c 20 28 74 |n a.// g|lobal (t|
|00004ac0| 68 69 73 20 73 68 6f 75 | 6c 64 20 62 65 20 63 68 |his shou|ld be ch|
|00004ad0| 61 6e 67 65 64 29 2e 0d | 2f 2f 0d 2f 2f 20 4c 6f |anged)..|//.// Lo|
|00004ae0| 63 61 74 65 73 20 74 68 | 65 20 46 49 52 53 54 20 |cates th|e FIRST |
|00004af0| 6f 62 6a 65 63 74 20 69 | 6e 20 61 20 73 6f 72 74 |object i|n a sort|
|00004b00| 65 64 20 6c 69 73 74 20 | 66 6f 72 20 77 68 69 63 |ed list |for whic|
|00004b10| 68 20 66 75 6e 63 20 72 | 65 74 75 72 6e 73 20 30 |h func r|eturns 0|
|00004b20| 20 6f 72 20 67 72 65 61 | 74 65 72 2e 0d 2f 2f 20 | or grea|ter..// |
|00004b30| 49 66 20 79 6f 75 72 20 | 6c 69 73 74 20 69 73 20 |If your |list is |
|00004b40| 6e 6f 74 20 61 63 74 75 | 61 6c 6c 79 20 73 6f 72 |not actu|ally sor|
|00004b50| 74 65 64 20 62 79 20 74 | 68 65 20 72 65 73 75 6c |ted by t|he resul|
|00004b60| 74 20 6f 66 20 66 75 6e | 63 2c 20 74 68 65 6e 20 |t of fun|c, then |
|00004b70| 74 68 69 73 20 72 6f 75 | 74 69 6e 65 0d 2f 2f 20 |this rou|tine.// |
|00004b80| 6f 62 76 69 6f 75 73 6c | 79 20 77 6f 6e 27 74 20 |obviousl|y won't |
|00004b90| 77 6f 72 6b 20 63 6f 72 | 72 65 63 74 6c 79 2e 0d |work cor|rectly..|
|00004ba0| 2f 2f 0d 2f 2f 20 49 66 | 20 74 68 65 20 6c 69 73 |//.// If| the lis|
|00004bb0| 74 20 69 73 20 65 6d 70 | 74 79 2c 20 77 65 20 72 |t is emp|ty, we r|
|00004bc0| 65 74 75 72 6e 20 2d 31 | 20 28 6e 6f 20 6d 61 74 |eturn -1| (no mat|
|00004bd0| 63 68 29 2e 20 20 49 66 | 20 65 76 65 72 79 20 69 |ch). If| every i|
|00004be0| 74 65 6d 20 69 6e 20 74 | 68 65 20 6c 69 73 74 20 |tem in t|he list |
|00004bf0| 72 65 74 75 72 6e 73 0d | 2f 2f 20 61 20 6e 75 6d |returns.|// a num|
|00004c00| 62 65 72 20 74 68 61 74 | 20 69 73 20 6c 65 73 73 |ber that| is less|
|00004c10| 20 74 68 61 6e 20 7a 65 | 72 6f 2c 20 74 68 65 6e | than ze|ro, then|
|00004c20| 20 77 65 20 72 65 74 75 | 72 6e 20 74 68 65 20 69 | we retu|rn the i|
|00004c30| 6e 64 65 78 20 6f 66 20 | 74 68 65 20 6c 61 73 74 |ndex of |the last|
|00004c40| 20 69 74 65 6d 20 69 6e | 20 74 68 65 0d 2f 2f 20 | item in| the.// |
|00004c50| 6c 69 73 74 2e 20 20 49 | 66 20 79 6f 75 27 72 65 |list. I|f you're|
|00004c60| 20 6c 6f 6f 6b 69 6e 67 | 20 66 6f 72 20 61 6e 20 | looking| for an |
|00004c70| 65 78 61 63 74 20 6d 61 | 74 63 68 2c 20 79 6f 75 |exact ma|tch, you|
|00004c80| 27 6c 6c 20 6e 65 65 64 | 20 74 6f 20 6d 61 6b 65 |'ll need| to make|
|00004c90| 20 6f 6e 65 20 6d 6f 72 | 65 20 63 6f 6d 70 61 72 | one mor|e compar|
|00004ca0| 65 0d 2f 2f 20 74 6f 20 | 66 69 6e 64 20 6f 75 74 |e.// to |find out|
|00004cb0| 2e 0d 2f 2f 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |..//----|--------|
|00004cc0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004cd0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004ce0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004cf0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00004d00| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 0d 73 68 6f |--------|----.sho|
|00004d10| 72 74 20 54 4f 62 6a 65 | 63 74 4c 69 73 74 3a 3a |rt TObje|ctList::|
|00004d20| 42 69 6e 61 72 79 53 65 | 61 72 63 68 28 73 68 6f |BinarySe|arch(sho|
|00004d30| 72 74 20 28 54 4f 62 6a | 65 63 74 3a 3a 2a 66 75 |rt (TObj|ect::*fu|
|00004d40| 6e 63 29 28 63 6f 6e 73 | 74 20 76 6f 69 64 2a 29 |nc)(cons|t void*)|
|00004d50| 2c 20 63 6f 6e 73 74 20 | 76 6f 69 64 2a 20 72 65 |, const |void* re|
|00004d60| 66 43 6f 6e 29 0d 09 7b | 0d 09 54 4f 62 6a 65 63 |fCon)..{|..TObjec|
|00004d70| 74 2a 20 6f 62 6a 20 3d | 20 6e 69 6c 3b 0d 0d 23 |t* obj =| nil;..#|
|00004d80| 69 66 20 30 09 0d 09 2f | 2f 0d 09 2f 2f 20 53 70 |if 0.../|/..// Sp|
|00004d90| 65 63 69 61 6c 20 63 68 | 65 63 6b 69 6e 67 3a 20 |ecial ch|ecking: |
|00004da0| 20 69 66 20 74 68 65 20 | 66 69 72 73 74 20 69 74 | if the |first it|
|00004db0| 65 6d 20 69 6e 20 74 68 | 65 20 6c 69 73 74 0d 09 |em in th|e list..|
|00004dc0| 2f 2f 20 72 65 74 75 72 | 6e 73 20 30 20 6f 72 20 |// retur|ns 0 or |
|00004dd0| 67 72 65 61 74 65 72 20 | 28 74 68 75 73 20 73 61 |greater |(thus sa|
|00004de0| 74 69 73 66 79 69 6e 67 | 20 74 68 65 20 63 72 69 |tisfying| the cri|
|00004df0| 74 65 72 69 61 0d 09 2f | 2f 20 66 6f 72 20 74 68 |teria../|/ for th|
|00004e00| 65 20 73 65 61 72 63 68 | 29 2c 20 74 68 65 6e 20 |e search|), then |
|00004e10| 72 65 74 75 72 6e 20 74 | 68 65 20 69 6e 64 65 78 |return t|he index|
|00004e20| 20 6f 66 20 74 68 65 20 | 66 69 72 73 74 0d 09 2f | of the |first../|
|00004e30| 2f 20 69 74 65 6d 20 28 | 30 29 20 77 69 74 68 6f |/ item (|0) witho|
|00004e40| 75 74 20 64 6f 69 6e 67 | 20 61 20 62 69 6e 61 72 |ut doing| a binar|
|00004e50| 79 20 73 65 61 72 63 68 | 2e 0d 09 2f 2f 0d 09 2f |y search|...//../|
|00004e60| 2f 20 49 20 64 6f 6e 27 | 74 20 74 68 69 6e 6b 20 |/ I don'|t think |
|00004e70| 74 68 61 74 20 74 68 69 | 73 20 74 65 73 74 20 69 |that thi|s test i|
|00004e80| 73 20 6e 65 63 65 73 73 | 61 72 79 2c 20 6e 6f 72 |s necess|ary, nor|
|00004e90| 20 64 6f 20 49 0d 09 2f | 2f 20 74 68 69 6e 6b 20 | do I../|/ think |
|00004ea0| 74 68 61 74 20 69 74 20 | 69 6d 70 72 6f 76 65 73 |that it |improves|
|00004eb0| 20 74 68 65 20 61 76 65 | 72 61 67 65 20 63 61 73 | the ave|rage cas|
|00004ec0| 65 2e 20 20 49 74 20 77 | 61 73 20 6d 61 73 6b 69 |e. It w|as maski|
|00004ed0| 6e 67 0d 09 2f 2f 20 61 | 20 63 6f 6d 6d 6f 6e 20 |ng..// a| common |
|00004ee0| 73 79 6d 70 74 6f 6d 20 | 6f 66 20 61 20 62 75 67 |symptom |of a bug|
|00004ef0| 20 69 6e 20 74 68 69 73 | 20 72 6f 75 74 69 6e 65 | in this| routine|
|00004f00| 20 28 6e 6f 77 20 66 69 | 78 65 64 29 2c 0d 09 2f | (now fi|xed),../|
|00004f10| 2f 20 73 6f 20 49 20 74 | 6f 6f 6b 20 69 74 20 6f |/ so I t|ook it o|
|00004f20| 75 74 2e 0d 09 2f 2f 0d | 09 2f 2f 09 09 09 09 09 |ut...//.|.//.....|
|00004f30| 09 2d 67 61 20 31 31 20 | 41 70 72 69 6c 20 39 35 |.-ga 11 |April 95|
|00004f40| 0d 09 2f 2f 0d 09 6f 62 | 6a 20 3d 20 46 69 72 73 |..//..ob|j = Firs|
|00004f50| 74 28 29 3b 0d 09 69 66 | 20 28 28 6f 62 6a 2d 3e |t();..if| ((obj->|
|00004f60| 2a 66 75 6e 63 29 28 72 | 65 66 43 6f 6e 29 20 3e |*func)(r|efCon) >|
|00004f70| 3d 20 30 29 0d 09 09 72 | 65 74 75 72 6e 20 30 3b |= 0)...r|eturn 0;|
|00004f80| 0d 23 65 6e 64 69 66 0d | 0d 09 2f 2f 0d 09 2f 2f |.#endif.|..//..//|
|00004f90| 20 42 65 67 69 6e 20 77 | 69 74 68 20 27 73 6d 61 | Begin w|ith 'sma|
|00004fa0| 6c 6c 65 72 27 20 70 6f | 69 6e 74 69 6e 67 20 61 |ller' po|inting a|
|00004fb0| 74 20 74 68 65 20 66 69 | 72 73 74 20 69 74 65 6d |t the fi|rst item|
|00004fc0| 20 69 6e 20 74 68 65 20 | 6c 69 73 74 2c 0d 09 2f | in the |list,../|
|00004fd0| 2f 20 27 62 69 67 67 65 | 72 27 20 70 6f 69 6e 74 |/ 'bigge|r' point|
|00004fe0| 69 6e 67 20 61 74 20 74 | 68 65 20 6c 61 73 74 20 |ing at t|he last |
|00004ff0| 69 74 65 6d 20 69 6e 20 | 74 68 65 20 6c 69 73 74 |item in |the list|
|00005000| 2c 20 61 6e 64 20 27 6d | 69 64 64 6c 65 27 0d 09 |, and 'm|iddle'..|
|00005010| 2f 2f 20 70 6f 69 6e 74 | 69 6e 67 20 61 74 20 73 |// point|ing at s|
|00005020| 6f 6d 65 20 69 74 65 6d | 20 69 6e 20 62 65 74 77 |ome item| in betw|
|00005030| 65 65 6e 20 74 68 65 6d | 20 28 6f 72 20 27 73 6d |een them| (or 'sm|
|00005040| 61 6c 6c 65 72 2c 27 20 | 69 66 20 74 68 65 72 65 |aller,' |if there|
|00005050| 0d 09 2f 2f 20 61 72 65 | 20 6f 6e 6c 79 20 74 77 |..// are| only tw|
|00005060| 6f 20 69 74 65 6d 73 20 | 69 6e 20 74 68 65 20 6c |o items |in the l|
|00005070| 69 73 74 29 2e 0d 09 2f | 2f 0d 09 75 6e 73 69 67 |ist).../|/..unsig|
|00005080| 6e 65 64 20 73 68 6f 72 | 74 20 73 6d 61 6c 6c 65 |ned shor|t smalle|
|00005090| 72 20 3d 20 30 3b 0d 09 | 75 6e 73 69 67 6e 65 64 |r = 0;..|unsigned|
|000050a0| 20 73 68 6f 72 74 20 62 | 69 67 67 65 72 20 3d 20 | short b|igger = |
|000050b0| 28 75 6e 73 69 67 6e 65 | 64 20 73 68 6f 72 74 29 |(unsigne|d short)|
|000050c0| 20 43 6f 75 6e 74 28 29 | 2d 31 3b 09 2f 2f 20 61 | Count()|-1;.// a|
|000050d0| 72 62 69 74 72 61 72 79 | 20 6c 69 6d 69 74 0d 09 |rbitrary| limit..|
|000050e0| 75 6e 73 69 67 6e 65 64 | 20 73 68 6f 72 74 20 6d |unsigned| short m|
|000050f0| 69 64 64 6c 65 20 3d 20 | 2d 31 3b 20 2f 2f 20 20 |iddle = |-1; // |
|00005100| 3d 20 62 69 67 67 65 72 | 2f 32 3b 0d 09 0d 09 2f |= bigger|/2;..../|
|00005110| 2f 0d 09 2f 2f 20 42 65 | 63 61 75 73 65 20 6f 66 |/..// Be|cause of|
|00005120| 20 74 68 65 20 65 78 69 | 74 20 63 6f 6e 64 69 74 | the exi|t condit|
|00005130| 69 6f 6e 73 20 6f 66 20 | 74 68 69 73 20 73 65 61 |ions of |this sea|
|00005140| 72 63 68 20 28 74 68 61 | 74 20 69 73 2c 20 77 65 |rch (tha|t is, we|
|00005150| 0d 09 2f 2f 20 72 65 74 | 75 72 6e 20 74 68 65 20 |..// ret|urn the |
|00005160| 46 49 52 53 54 20 69 74 | 65 6d 20 74 68 61 74 20 |FIRST it|em that |
|00005170| 72 65 74 75 72 6e 73 20 | 7a 65 72 6f 20 6f 72 20 |returns |zero or |
|00005180| 67 72 65 61 74 65 72 29 | 2c 20 77 65 0d 09 2f 2f |greater)|, we..//|
|00005190| 20 6d 75 73 74 20 63 6f | 6e 74 69 6e 75 65 20 69 | must co|ntinue i|
|000051a0| 74 65 72 61 74 69 6e 67 | 20 75 6e 74 69 6c 20 77 |terating| until w|
|000051b0| 65 20 63 6f 6e 76 65 72 | 67 65 20 6f 6e 20 61 20 |e conver|ge on a |
|000051c0| 73 69 6e 67 6c 65 20 69 | 74 65 6d 2e 0d 09 2f 2f |single i|tem...//|
|000051d0| 20 46 6f 72 20 74 68 69 | 73 20 70 61 72 74 20 6f | For thi|s part o|
|000051e0| 66 20 74 68 65 20 6c 6f | 6f 70 2c 20 74 68 6f 75 |f the lo|op, thou|
|000051f0| 67 68 2c 20 77 65 20 77 | 69 6c 6c 20 73 74 6f 70 |gh, we w|ill stop|
|00005200| 20 77 68 65 6e 20 77 65 | 20 61 72 65 0d 09 2f 2f | when we| are..//|
|00005210| 20 64 6f 77 6e 20 74 6f | 20 74 77 6f 20 69 74 65 | down to| two ite|
|00005220| 6d 73 20 74 6f 20 63 68 | 6f 6f 73 65 20 62 65 74 |ms to ch|oose bet|
|00005230| 77 65 65 6e 2e 0d 09 2f | 2f 0d 09 77 68 69 6c 65 |ween.../|/..while|
|00005240| 20 28 62 69 67 67 65 72 | 20 3e 20 73 6d 61 6c 6c | (bigger| > small|
|00005250| 65 72 20 2b 20 31 29 0d | 09 09 7b 0d 09 09 2f 2f |er + 1).|..{...//|
|00005260| 0d 09 09 2f 2f 20 27 6d | 69 64 64 6c 65 27 20 69 |...// 'm|iddle' i|
|00005270| 73 20 74 68 65 20 69 6e | 64 65 78 20 6f 66 20 74 |s the in|dex of t|
|00005280| 68 65 20 69 74 65 6d 20 | 74 6f 20 63 6f 6d 70 61 |he item |to compa|
|00005290| 72 65 3b 0d 09 09 2f 2f | 20 61 6c 77 61 79 73 20 |re;...//| always |
|000052a0| 6c 6f 6f 6b 20 61 74 20 | 74 68 65 20 69 74 65 6d |look at |the item|
|000052b0| 20 68 61 6c 66 77 61 79 | 20 62 65 74 77 65 65 6e | halfway| between|
|000052c0| 20 74 68 65 20 74 77 6f | 0d 09 09 2f 2f 20 69 74 | the two|...// it|
|000052d0| 65 6d 73 2e 0d 09 09 2f | 2f 0d 09 09 6d 69 64 64 |ems..../|/...midd|
|000052e0| 6c 65 20 3d 20 28 62 69 | 67 67 65 72 20 2b 20 73 |le = (bi|gger + s|
|000052f0| 6d 61 6c 6c 65 72 29 2f | 32 3b 0d 09 09 0d 09 09 |maller)/|2;......|
|00005300| 2f 2f 0d 09 09 2f 2f 20 | 49 66 20 74 68 65 20 6d |//...// |If the m|
|00005310| 69 64 64 6c 65 20 6f 62 | 6a 65 63 74 20 69 73 20 |iddle ob|ject is |
|00005320| 74 6f 6f 20 73 6d 61 6c | 6c 20 28 64 6f 65 73 6e |too smal|l (doesn|
|00005330| 27 74 20 6d 61 74 63 68 | 0d 09 09 2f 2f 20 74 68 |'t match|...// th|
|00005340| 65 20 73 65 61 72 63 68 | 20 63 72 69 74 65 72 69 |e search| criteri|
|00005350| 61 29 2c 20 74 68 65 6e | 20 6d 6f 76 65 20 74 68 |a), then| move th|
|00005360| 65 20 73 6d 61 6c 6c 65 | 72 20 69 6e 64 65 78 0d |e smalle|r index.|
|00005370| 09 09 2f 2f 20 75 70 20 | 74 6f 20 74 68 65 20 6d |..// up |to the m|
|00005380| 69 64 64 6c 65 2e 20 20 | 49 66 20 74 68 65 20 6d |iddle. |If the m|
|00005390| 69 64 64 6c 65 20 6f 62 | 6a 65 63 74 20 64 6f 65 |iddle ob|ject doe|
|000053a0| 73 0d 09 09 2f 2f 20 6d | 61 74 63 68 20 74 68 65 |s...// m|atch the|
|000053b0| 20 73 65 61 72 63 68 20 | 63 72 69 74 65 72 69 61 | search |criteria|
|000053c0| 2c 20 74 68 65 6e 20 6d | 6f 76 65 20 27 62 69 67 |, then m|ove 'big|
|000053d0| 67 65 72 27 0d 09 09 2f | 2f 20 64 6f 77 6e 20 74 |ger'.../|/ down t|
|000053e0| 6f 20 74 68 65 20 6d 69 | 64 64 6c 65 20 6f 62 6a |o the mi|ddle obj|
|000053f0| 65 63 74 2e 0d 09 09 2f | 2f 0d 09 09 2f 2f 20 46 |ect..../|/...// F|
|00005400| 6f 72 20 65 78 61 6d 70 | 6c 65 2c 20 73 75 70 70 |or examp|le, supp|
|00005410| 6f 73 65 20 74 68 61 74 | 20 6f 6e 20 74 68 65 20 |ose that| on the |
|00005420| 66 69 72 73 74 20 69 74 | 65 72 61 74 69 6f 6e 0d |first it|eration.|
|00005430| 09 09 2f 2f 20 6f 66 20 | 74 68 65 20 73 65 61 72 |..// of |the sear|
|00005440| 63 68 20 77 65 20 68 61 | 76 65 20 74 68 65 20 66 |ch we ha|ve the f|
|00005450| 6f 6c 6c 6f 77 69 6e 67 | 20 73 69 74 75 61 74 69 |ollowing| situati|
|00005460| 6f 6e 3a 0d 09 09 2f 2f | 0d 09 09 2f 2f 09 09 2b |on:...//|...//..+|
|00005470| 2d 2d 2d 2b 2d 2d 2d 2b | 2d 2d 2d 2b 2d 2d 2d 2b |---+---+|---+---+|
|00005480| 2d 2d 2d 2b 0d 09 09 2f | 2f 09 09 7c 20 30 20 7c |---+.../|/..| 0 ||
|00005490| 20 31 20 7c 20 32 20 7c | 20 33 20 7c 20 34 20 7c | 1 | 2 || 3 | 4 ||
|000054a0| 09 09 3c 2d 2d 20 49 6e | 64 65 78 20 6f 66 20 69 |..<-- In|dex of i|
|000054b0| 74 65 6d 0d 09 09 2f 2f | 09 09 7c 3d 3f 3f 7c 3d |tem...//|..|=??|=|
|000054c0| 3f 3f 7c 3d 3f 3f 7c 3d | 3f 3f 7c 3d 3f 3f 7c 09 |??|=??|=|??|=??|.|
|000054d0| 09 3c 2d 2d 20 76 61 6c | 75 65 20 72 65 74 75 72 |.<-- val|ue retur|
|000054e0| 6e 65 64 20 62 79 20 69 | 74 65 6d 2d 3e 66 75 6e |ned by i|tem->fun|
|000054f0| 63 0d 09 09 2f 2f 09 09 | 2b 2d 2d 2d 2b 2d 2d 2d |c...//..|+---+---|
|00005500| 2b 2d 2d 2d 2b 2d 2d 2d | 2b 2d 2d 2d 2b 0d 09 09 |+---+---|+---+...|
|00005510| 2f 2f 20 20 20 20 20 20 | 20 20 5e 20 20 20 20 20 |// | ^ |
|00005520| 20 20 5e 20 20 20 20 20 | 20 20 5e 0d 09 09 2f 2f | ^ | ^...//|
|00005530| 20 20 20 20 20 20 20 20 | 53 20 20 20 20 20 20 20 | |S |
|00005540| 4d 20 20 20 20 20 20 20 | 42 09 09 09 28 73 6d 61 |M |B...(sma|
|00005550| 6c 6c 65 72 2c 20 6d 69 | 64 64 6c 65 20 61 6e 64 |ller, mi|ddle and|
|00005560| 20 62 69 67 67 65 72 2c | 20 72 65 73 70 65 63 74 | bigger,| respect|
|00005570| 69 76 65 6c 79 29 0d 09 | 09 2f 2f 0d 09 09 2f 2f |ively)..|.//...//|
|00005580| 20 49 66 20 69 74 65 6d | 20 32 20 72 65 74 75 72 | If item| 2 retur|
|00005590| 6e 73 20 61 20 6e 75 6d | 62 65 72 20 6c 65 73 73 |ns a num|ber less|
|000055a0| 20 74 68 61 6e 20 7a 65 | 72 6f 2c 20 74 68 65 6e | than ze|ro, then|
|000055b0| 20 77 65 20 77 69 6c 6c | 20 68 61 76 65 3a 0d 09 | we will| have:..|
|000055c0| 09 2f 2f 0d 09 09 2f 2f | 09 09 2b 2d 2d 2d 2b 2d |.//...//|..+---+-|
|000055d0| 2d 2d 2b 2d 2d 2d 2b 2d | 2d 2d 2b 2d 2d 2d 2b 0d |--+---+-|--+---+.|
|000055e0| 09 09 2f 2f 09 09 7c 20 | 30 20 7c 20 31 20 7c 20 |..//..| |0 | 1 | |
|000055f0| 32 20 7c 20 33 20 7c 20 | 34 20 7c 09 09 3c 2d 2d |2 | 3 | |4 |..<--|
|00005600| 20 49 6e 64 65 78 20 6f | 66 20 69 74 65 6d 0d 09 | Index o|f item..|
|00005610| 09 2f 2f 09 09 7c 3d 2d | 39 7c 3d 2d 37 7c 3d 2d |.//..|=-|9|=-7|=-|
|00005620| 32 7c 3d 30 20 7c 3d 31 | 20 7c 09 09 3c 2d 2d 20 |2|=0 |=1| |..<-- |
|00005630| 76 61 6c 75 65 20 72 65 | 74 75 72 6e 65 64 20 62 |value re|turned b|
|00005640| 79 20 69 74 65 6d 2d 3e | 66 75 6e 63 0d 09 09 2f |y item->|func.../|
|00005650| 2f 09 09 2b 2d 2d 2d 2b | 2d 2d 2d 2b 2d 2d 2d 2b |/..+---+|---+---+|
|00005660| 2d 2d 2d 2b 2d 2d 2d 2b | 0d 09 09 2f 2f 20 20 20 |---+---+|...// |
|00005670| 20 20 20 20 20 20 20 20 | 20 20 20 20 20 5e 20 20 | | ^ |
|00005680| 20 20 20 20 20 5e 0d 09 | 09 2f 2f 20 20 20 20 20 | ^..|.// |
|00005690| 20 20 20 20 20 20 20 20 | 20 20 20 53 20 20 20 20 | | S |
|000056a0| 20 20 20 42 0d 09 09 2f | 2f 0d 09 09 2f 2f 20 49 | B.../|/...// I|
|000056b0| 66 20 69 74 65 6d 20 32 | 20 72 65 74 75 72 6e 73 |f item 2| returns|
|000056c0| 20 61 20 6e 75 6d 62 65 | 72 20 67 72 65 61 74 65 | a numbe|r greate|
|000056d0| 72 20 74 68 61 6e 20 6f | 72 20 65 71 75 61 6c 20 |r than o|r equal |
|000056e0| 74 6f 20 7a 65 72 6f 2c | 20 74 68 65 6e 0d 09 09 |to zero,| then...|
|000056f0| 2f 2f 20 77 65 20 77 69 | 6c 6c 20 68 61 76 65 3a |// we wi|ll have:|
|00005700| 0d 09 09 2f 2f 0d 09 09 | 2f 2f 09 09 2b 2d 2d 2d |...//...|//..+---|
|00005710| 2b 2d 2d 2d 2b 2d 2d 2d | 2b 2d 2d 2d 2b 2d 2d 2d |+---+---|+---+---|
|00005720| 2b 0d 09 09 2f 2f 09 09 | 7c 20 30 20 7c 20 31 20 |+...//..|| 0 | 1 |
|00005730| 7c 20 32 20 7c 20 33 20 | 7c 20 34 20 7c 09 09 3c || 2 | 3 || 4 |..<|
|00005740| 2d 2d 20 49 6e 64 65 78 | 20 6f 66 20 69 74 65 6d |-- Index| of item|
|00005750| 0d 09 09 2f 2f 09 09 7c | 3d 2d 31 7c 3d 30 20 7c |...//..||=-1|=0 ||
|00005760| 3d 30 20 7c 3d 33 20 7c | 3d 34 20 7c 09 09 3c 2d |=0 |=3 ||=4 |..<-|
|00005770| 2d 20 76 61 6c 75 65 20 | 72 65 74 75 72 6e 65 64 |- value |returned|
|00005780| 20 62 79 20 69 74 65 6d | 2d 3e 66 75 6e 63 0d 09 | by item|->func..|
|00005790| 09 2f 2f 09 09 2b 2d 2d | 2d 2b 2d 2d 2d 2b 2d 2d |.//..+--|-+---+--|
|000057a0| 2d 2b 2d 2d 2d 2b 2d 2d | 2d 2b 0d 09 09 2f 2f 20 |-+---+--|-+...// |
|000057b0| 20 20 20 20 20 20 20 5e | 20 20 20 20 20 20 20 5e | ^| ^|
|000057c0| 0d 09 09 2f 2f 20 20 20 | 20 20 20 20 20 53 20 20 |...// | S |
|000057d0| 20 20 20 20 20 42 0d 09 | 09 2f 2f 0d 09 09 2f 2f | B..|.//...//|
|000057e0| 20 4f 6e 20 74 68 65 20 | 6e 65 78 74 20 69 74 65 | On the |next ite|
|000057f0| 72 61 74 69 6f 6e 2c 20 | 27 6d 69 64 64 6c 65 27 |ration, |'middle'|
|00005800| 20 77 69 6c 6c 20 62 65 | 20 6d 6f 76 65 64 20 74 | will be| moved t|
|00005810| 6f 20 74 68 65 20 69 6e | 64 65 78 20 68 61 6c 66 |o the in|dex half|
|00005820| 77 61 79 0d 09 09 2f 2f | 20 62 65 74 77 65 65 6e |way...//| between|
|00005830| 20 73 6d 61 6c 6c 65 72 | 20 61 6e 64 20 62 69 67 | smaller| and big|
|00005840| 67 65 72 2e 20 20 54 68 | 69 73 20 77 69 6c 6c 20 |ger. Th|is will |
|00005850| 63 6f 6e 74 69 6e 75 65 | 20 75 6e 74 69 6c 20 62 |continue| until b|
|00005860| 69 67 67 65 72 20 3d 20 | 73 6d 61 6c 6c 65 72 20 |igger = |smaller |
|00005870| 2b 20 31 2c 0d 09 09 2f | 2f 20 61 74 20 77 68 69 |+ 1,.../|/ at whi|
|00005880| 63 68 20 74 69 6d 65 20 | 6d 69 64 64 6c 65 20 77 |ch time |middle w|
|00005890| 69 6c 6c 20 61 6c 77 61 | 79 73 20 3d 3d 20 73 6d |ill alwa|ys == sm|
|000058a0| 61 6c 6c 65 72 2e 0d 09 | 09 2f 2f 0d 09 09 6f 62 |aller...|.//...ob|
|000058b0| 6a 20 3d 20 49 74 68 28 | 6d 69 64 64 6c 65 29 3b |j = Ith(|middle);|
|000058c0| 0d 09 09 69 66 20 28 28 | 6f 62 6a 2d 3e 2a 66 75 |...if ((|obj->*fu|
|000058d0| 6e 63 29 28 72 65 66 43 | 6f 6e 29 20 3c 20 30 29 |nc)(refC|on) < 0)|
|000058e0| 0d 09 09 09 73 6d 61 6c | 6c 65 72 20 3d 20 6d 69 |....smal|ler = mi|
|000058f0| 64 64 6c 65 3b 0d 09 09 | 65 6c 73 65 0d 09 09 09 |ddle;...|else....|
|00005900| 62 69 67 67 65 72 20 3d | 20 6d 69 64 64 6c 65 3b |bigger =| middle;|
|00005910| 0d 09 09 7d 0d 0d 09 2f | 2f 0d 09 2f 2f 20 41 74 |...}.../|/..// At|
|00005920| 20 74 68 69 73 20 70 6f | 69 6e 74 20 74 68 65 72 | this po|int ther|
|00005930| 65 20 61 72 65 20 61 20 | 6e 75 6d 62 65 72 20 6f |e are a |number o|
|00005940| 66 20 70 6f 73 73 69 62 | 6c 69 74 69 65 73 3a 0d |f possib|lities:.|
|00005950| 09 2f 2f 0d 09 2f 2f 09 | 31 2e 09 62 69 67 67 65 |.//..//.|1..bigge|
|00005960| 72 20 3d 3d 20 2d 31 3a | 09 54 68 69 73 20 77 69 |r == -1:|.This wi|
|00005970| 6c 6c 20 6f 6e 6c 79 20 | 68 61 70 70 65 6e 20 69 |ll only |happen i|
|00005980| 66 20 74 68 65 20 6c 69 | 73 74 20 69 73 20 65 6d |f the li|st is em|
|00005990| 70 74 79 2e 0d 09 2f 2f | 09 09 49 6e 20 74 68 69 |pty...//|..In thi|
|000059a0| 73 20 63 61 73 65 2c 20 | 77 65 20 72 65 74 75 72 |s case, |we retur|
|000059b0| 6e 20 27 62 69 67 67 65 | 72 27 20 28 2d 31 29 2e |n 'bigge|r' (-1).|
|000059c0| 0d 09 2f 2f 0d 09 2f 2f | 09 32 2e 09 62 69 67 67 |..//..//|.2..bigg|
|000059d0| 65 72 20 3d 3d 20 73 6d | 61 6c 6c 65 72 3a 20 54 |er == sm|aller: T|
|000059e0| 68 69 73 20 77 69 6c 6c | 20 6f 6e 6c 79 20 68 61 |his will| only ha|
|000059f0| 70 70 65 6e 20 69 66 20 | 74 68 65 72 65 20 69 73 |ppen if |there is|
|00005a00| 0d 09 2f 2f 09 09 6f 6e | 6c 79 20 6f 6e 65 20 69 |..//..on|ly one i|
|00005a10| 74 65 6d 20 69 6e 20 74 | 68 65 20 6c 69 73 74 2e |tem in t|he list.|
|00005a20| 20 20 49 6e 20 74 68 69 | 73 20 63 61 73 65 2c 20 | In thi|s case, |
|00005a30| 77 65 20 72 65 74 75 72 | 6e 20 27 62 69 67 67 65 |we retur|n 'bigge|
|00005a40| 72 27 20 28 30 29 2e 0d | 09 2f 2f 0d 09 2f 2f 09 |r' (0)..|.//..//.|
|00005a50| 33 2e 09 62 69 67 67 65 | 72 20 3d 3d 20 73 6d 61 |3..bigge|r == sma|
|00005a60| 6c 6c 65 72 20 2b 20 31 | 3a 20 20 54 68 69 73 20 |ller + 1|: This |
|00005a70| 77 69 6c 6c 20 68 61 70 | 70 65 6e 20 66 6f 72 20 |will hap|pen for |
|00005a80| 61 6e 79 20 6c 69 73 74 | 0d 09 2f 2f 09 09 6f 66 |any list|..//..of|
|00005a90| 20 74 77 6f 20 69 74 65 | 6d 73 20 6f 72 20 6d 6f | two ite|ms or mo|
|00005aa0| 72 65 2e 20 20 49 6e 20 | 74 68 61 74 20 63 61 73 |re. In |that cas|
|00005ab0| 65 2c 20 6d 69 64 64 6c | 65 20 77 69 6c 6c 20 62 |e, middl|e will b|
|00005ac0| 65 20 6f 6e 65 20 6f 66 | 3a 0d 09 2f 2f 0d 09 2f |e one of|:..//../|
|00005ad0| 2f 09 09 62 2e 09 73 6d | 61 6c 6c 65 72 3a 09 49 |/..b..sm|aller:.I|
|00005ae0| 66 20 74 68 65 20 73 6d | 61 6c 6c 65 72 20 69 74 |f the sm|aller it|
|00005af0| 65 6d 20 77 61 73 20 74 | 68 65 20 6d 69 64 64 6c |em was t|he middl|
|00005b00| 65 20 69 74 65 6d 20 6f | 6e 20 74 68 65 0d 09 2f |e item o|n the../|
|00005b10| 2f 09 09 09 09 09 09 6c | 61 73 74 20 69 74 65 72 |/......l|ast iter|
|00005b20| 61 74 69 6f 6e 20 6f 66 | 20 74 68 65 20 6c 6f 6f |ation of| the loo|
|00005b30| 70 2c 20 74 68 65 6e 20 | 77 65 27 76 65 20 61 6c |p, then |we've al|
|00005b40| 72 65 61 64 79 0d 09 2f | 2f 09 09 09 09 09 09 63 |ready../|/......c|
|00005b50| 61 6c 6c 65 64 20 27 66 | 75 6e 63 27 2c 20 61 6e |alled 'f|unc', an|
|00005b60| 64 20 77 65 20 6b 6e 6f | 77 20 74 68 61 74 20 69 |d we kno|w that i|
|00005b70| 74 20 72 65 74 75 72 6e | 65 64 20 61 0d 09 2f 2f |t return|ed a..//|
|00005b80| 09 09 09 09 09 09 6e 75 | 6d 62 65 72 20 74 68 61 |......nu|mber tha|
|00005b90| 74 20 77 61 73 20 3c 20 | 30 3b 20 74 68 65 72 65 |t was < |0; there|
|00005ba0| 66 6f 72 65 2c 20 77 65 | 20 73 68 6f 75 6c 64 20 |fore, we| should |
|00005bb0| 72 65 74 75 72 6e 0d 09 | 2f 2f 09 09 09 09 09 09 |return..|//......|
|00005bc0| 27 62 69 67 67 65 72 27 | 2c 20 62 65 63 61 75 73 |'bigger'|, becaus|
|00005bd0| 65 20 27 73 6d 61 6c 6c | 65 72 27 20 64 6f 65 73 |e 'small|er' does|
|00005be0| 6e 27 74 20 6d 65 65 74 | 20 74 68 65 0d 09 2f 2f |n't meet| the..//|
|00005bf0| 09 09 09 09 09 09 63 72 | 69 74 65 72 69 61 20 6f |......cr|iteria o|
|00005c00| 66 20 74 68 65 20 73 65 | 61 72 63 68 2e 20 20 4e |f the se|arch. N|
|00005c10| 6f 74 65 20 74 68 61 74 | 20 62 69 67 67 65 72 20 |ote that| bigger |
|00005c20| 6d 61 79 20 6f 72 0d 09 | 2f 2f 09 09 09 09 09 09 |may or..|//......|
|00005c30| 6d 61 79 20 6e 6f 74 20 | 6d 65 65 74 20 74 68 65 |may not |meet the|
|00005c40| 20 73 65 61 72 63 68 20 | 63 72 69 74 65 72 69 61 | search |criteria|
|00005c50| 2c 20 62 75 74 20 69 66 | 20 69 74 20 64 6f 65 73 |, but if| it does|
|00005c60| 0d 09 2f 2f 09 09 09 09 | 09 09 6e 6f 74 2c 20 74 |..//....|..not, t|
|00005c70| 68 65 6e 20 69 74 20 6d | 75 73 74 20 62 65 20 74 |hen it m|ust be t|
|00005c80| 68 65 20 6c 61 73 74 20 | 69 74 65 6d 20 69 6e 20 |he last |item in |
|00005c90| 74 68 65 20 6c 69 73 74 | 2c 0d 09 2f 2f 09 09 09 |the list|,..//...|
|00005ca0| 09 09 09 77 68 69 63 68 | 20 69 73 20 77 68 61 74 |...which| is what|
|00005cb0| 20 77 65 20 72 65 74 75 | 72 6e 20 77 68 65 6e 20 | we retu|rn when |
|00005cc0| 6e 6f 20 69 74 65 6d 73 | 20 6d 61 74 63 68 2e 0d |no items| match..|
|00005cd0| 09 2f 2f 0d 09 2f 2f 09 | 09 63 2e 09 62 69 67 67 |.//..//.|.c..bigg|
|00005ce0| 65 72 3a 09 09 49 6e 20 | 74 68 69 73 20 63 61 73 |er:..In |this cas|
|00005cf0| 65 2c 20 77 65 20 6b 6e | 6f 77 20 74 68 61 74 20 |e, we kn|ow that |
|00005d00| 74 68 65 20 62 69 67 67 | 65 72 20 69 74 65 6d 20 |the bigg|er item |
|00005d10| 77 61 73 20 74 68 65 0d | 09 2f 2f 09 09 09 09 09 |was the.|.//.....|
|00005d20| 09 6d 69 64 64 6c 65 20 | 69 74 65 6d 20 6f 6e 20 |.middle |item on |
|00005d30| 74 68 65 20 6c 61 73 74 | 20 69 74 65 72 61 74 69 |the last| iterati|
|00005d40| 6f 6e 20 6f 66 20 74 68 | 65 20 6c 6f 6f 70 2c 0d |on of th|e loop,.|
|00005d50| 09 2f 2f 09 09 09 09 09 | 09 4f 52 20 74 68 65 72 |.//.....|.OR ther|
|00005d60| 65 20 61 72 65 20 6f 6e | 6c 79 20 74 77 6f 20 69 |e are on|ly two i|
|00005d70| 74 65 6d 73 20 69 6e 20 | 74 68 65 20 6c 69 73 74 |tems in |the list|
|00005d80| 2e 20 20 49 66 20 74 68 | 65 72 65 0d 09 2f 2f 09 |. If th|ere..//.|
|00005d90| 09 09 09 09 09 61 72 65 | 20 6d 6f 72 65 20 74 68 |.....are| more th|
|00005da0| 61 6e 20 74 77 6f 20 69 | 74 65 6d 73 20 69 6e 20 |an two i|tems in |
|00005db0| 74 68 65 20 6c 69 73 74 | 2c 20 74 68 65 6e 20 77 |the list|, then w|
|00005dc0| 65 27 76 65 20 61 6c 72 | 65 61 64 79 0d 09 2f 2f |e've alr|eady..//|
|00005dd0| 09 09 09 09 09 09 63 61 | 6c 6c 65 64 20 27 66 75 |......ca|lled 'fu|
|00005de0| 6e 63 27 20 6f 6e 20 62 | 69 67 67 65 72 2c 20 61 |nc' on b|igger, a|
|00005df0| 6e 64 20 77 65 20 6b 6e | 6f 77 20 74 68 61 74 20 |nd we kn|ow that |
|00005e00| 69 74 20 72 65 74 75 72 | 6e 65 64 0d 09 2f 2f 09 |it retur|ned..//.|
|00005e10| 09 09 09 09 09 61 20 6e | 75 6d 62 65 72 20 74 68 |.....a n|umber th|
|00005e20| 61 74 20 77 61 73 20 3e | 3d 20 30 20 28 69 66 20 |at was >|= 0 (if |
|00005e30| 62 69 67 67 65 72 2d 3e | 66 75 6e 63 20 3c 20 30 |bigger->|func < 0|
|00005e40| 2c 20 74 68 65 6e 0d 09 | 2f 2f 09 09 09 09 09 09 |, then..|//......|
|00005e50| 6d 69 64 64 6c 65 20 77 | 69 6c 6c 20 61 6c 77 61 |middle w|ill alwa|
|00005e60| 79 73 20 3d 3d 20 73 6d | 61 6c 6c 65 72 29 2e 20 |ys == sm|aller). |
|00005e70| 20 49 66 20 74 68 65 72 | 65 20 61 72 65 20 74 77 | If ther|e are tw|
|00005e80| 6f 20 69 74 65 6d 73 0d | 09 2f 2f 09 09 09 09 09 |o items.|.//.....|
|00005e90| 09 69 6e 20 74 68 65 20 | 6c 69 73 74 2c 20 74 68 |.in the |list, th|
|00005ea0| 65 6e 20 27 62 69 67 67 | 65 72 27 20 69 73 20 61 |en 'bigg|er' is a|
|00005eb0| 6c 77 61 79 73 20 61 74 | 20 6c 65 61 73 74 20 61 |lways at| least a|
|00005ec0| 6e 0d 09 2f 2f 09 09 09 | 09 09 09 68 6f 6e 6f 72 |n..//...|...honor|
|00005ed0| 61 72 79 20 6d 65 6d 62 | 65 72 20 6f 66 20 74 68 |ary memb|er of th|
|00005ee0| 65 20 73 65 61 72 63 68 | 20 73 65 74 20 28 73 69 |e search| set (si|
|00005ef0| 6e 63 65 20 77 65 20 72 | 65 74 75 72 6e 0d 09 2f |nce we r|eturn../|
|00005f00| 2f 09 09 09 09 09 09 27 | 62 69 67 67 65 72 27 20 |/......'|bigger' |
|00005f10| 69 66 20 74 68 65 72 65 | 20 61 72 65 20 6e 6f 20 |if there| are no |
|00005f20| 6d 61 74 63 68 65 73 29 | 2e 0d 09 2f 2f 0d 09 2f |matches)|...//../|
|00005f30| 2f 09 09 09 09 09 09 48 | 4f 57 45 56 45 52 2c 20 |/......H|OWEVER, |
|00005f40| 27 66 75 6e 63 27 20 77 | 61 73 20 6e 65 76 65 72 |'func' w|as never|
|00005f50| 20 63 61 6c 6c 65 64 20 | 66 6f 72 20 74 68 65 20 | called |for the |
|00005f60| 73 6d 61 6c 6c 65 72 0d | 09 2f 2f 09 09 09 09 09 |smaller.|.//.....|
|00005f70| 09 69 74 65 6d 2c 20 73 | 6f 20 27 73 6d 61 6c 6c |.item, s|o 'small|
|00005f80| 65 72 27 20 6d 61 79 20 | 6f 72 20 6d 61 79 20 6e |er' may |or may n|
|00005f90| 6f 74 20 6d 65 65 74 20 | 74 68 65 20 73 65 61 72 |ot meet |the sear|
|00005fa0| 63 68 0d 09 2f 2f 09 09 | 09 09 09 09 63 72 69 74 |ch..//..|....crit|
|00005fb0| 65 72 69 61 2e 20 20 54 | 68 65 20 6f 6e 6c 79 20 |eria. T|he only |
|00005fc0| 77 61 79 20 74 6f 20 66 | 69 6e 64 20 6f 75 74 20 |way to f|ind out |
|00005fd0| 69 73 20 74 6f 20 63 61 | 6c 6c 0d 09 2f 2f 09 09 |is to ca|ll..//..|
|00005fe0| 09 09 09 09 27 66 75 6e | 63 27 20 6f 6e 20 27 73 |....'fun|c' on 's|
|00005ff0| 6d 61 6c 6c 65 72 27 2c | 20 61 6e 64 20 72 65 74 |maller',| and ret|
|00006000| 75 72 6e 20 27 73 6d 61 | 6c 6c 65 72 27 20 69 66 |urn 'sma|ller' if|
|00006010| 66 20 66 75 6e 63 0d 09 | 2f 2f 09 09 09 09 09 09 |f func..|//......|
|00006020| 72 65 74 75 72 6e 73 20 | 7a 65 72 6f 20 6f 72 20 |returns |zero or |
|00006030| 67 72 65 61 74 65 72 20 | 28 6f 74 68 65 72 77 69 |greater |(otherwi|
|00006040| 73 65 20 77 65 20 72 65 | 74 75 72 6e 20 27 62 69 |se we re|turn 'bi|
|00006050| 67 67 65 72 27 29 2e 0d | 09 2f 2f 0d 09 69 66 28 |gger')..|.//..if(|
|00006060| 6d 69 64 64 6c 65 20 3d | 3d 20 62 69 67 67 65 72 |middle =|= bigger|
|00006070| 29 0d 09 09 7b 0d 09 09 | 6f 62 6a 20 3d 20 49 74 |)...{...|obj = It|
|00006080| 68 28 73 6d 61 6c 6c 65 | 72 29 3b 0d 09 09 69 66 |h(smalle|r);...if|
|00006090| 20 28 28 6f 62 6a 2d 3e | 2a 66 75 6e 63 29 28 72 | ((obj->|*func)(r|
|000060a0| 65 66 43 6f 6e 29 20 3e | 3d 20 30 29 0d 09 09 09 |efCon) >|= 0)....|
|000060b0| 62 69 67 67 65 72 20 3d | 20 73 6d 61 6c 6c 65 72 |bigger =| smaller|
|000060c0| 3b 0d 09 09 7d 20 0d 0d | 09 72 65 74 75 72 6e 20 |;...} ..|.return |
|000060d0| 62 69 67 67 65 72 3b 0d | 09 7d 20 2f 2f 20 54 4f |bigger;.|.} // TO|
|000060e0| 62 6a 65 63 74 4c 69 73 | 74 3a 3a 42 69 6e 61 72 |bjectLis|t::Binar|
|000060f0| 79 53 65 61 72 63 68 20 | 0d 0d 2f 2f 2d 2d 2d 2d |ySearch |..//----|
|00006100| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006110| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006120| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006130| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006140| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006150| 2d 2d 2d 2d 0d 2f 2f 20 | 54 4f 62 6a 65 63 74 4c |----.// |TObjectL|
|00006160| 69 73 74 3a 3a 52 65 70 | 6c 61 63 65 42 79 4b 65 |ist::Rep|laceByKe|
|00006170| 79 3a 20 0d 2f 2f 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |y: .//--|--------|
|00006180| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006190| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000061a0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000061b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000061c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 0d 54 |--------|------.T|
|000061d0| 4f 62 6a 65 63 74 2a 20 | 54 4f 62 6a 65 63 74 4c |Object* |TObjectL|
|000061e0| 69 73 74 3a 3a 52 65 70 | 6c 61 63 65 42 79 4b 65 |ist::Rep|laceByKe|
|000061f0| 79 28 6c 6f 6e 67 20 6b | 65 79 2c 20 54 4f 62 6a |y(long k|ey, TObj|
|00006200| 65 63 74 2a 20 6e 65 77 | 49 74 65 6d 29 0d 09 7b |ect* new|Item)..{|
|00006210| 0d 09 41 53 53 45 52 54 | 28 6e 65 77 49 74 65 6d |..ASSERT|(newItem|
|00006220| 29 3b 0d 0d 09 6c 6f 6e | 67 20 69 6e 64 65 78 20 |);...lon|g index |
|00006230| 3d 20 42 79 74 65 49 6e | 64 65 78 28 6b 65 79 29 |= ByteIn|dex(key)|
|00006240| 3b 0d 09 2f 2f 20 2a 2a | 2a 20 77 68 61 74 20 69 |;..// **|* what i|
|00006250| 66 20 6e 6f 74 20 66 6f | 75 6e 64 3f 0d 09 72 65 |f not fo|und?..re|
|00006260| 74 75 72 6e 20 28 54 4f | 62 6a 65 63 74 2a 29 20 |turn (TO|bject*) |
|00006270| 52 65 70 6c 61 63 65 28 | 69 6e 64 65 78 2c 20 6e |Replace(|index, n|
|00006280| 65 77 49 74 65 6d 29 3b | 0d 09 7d 20 2f 2f 20 54 |ewItem);|..} // T|
|00006290| 4f 62 6a 65 63 74 4c 69 | 73 74 3a 3a 52 65 70 6c |ObjectLi|st::Repl|
|000062a0| 61 63 65 42 79 4b 65 79 | 20 0d 0d 0d 2f 2f 2d 2d |aceByKey| ...//--|
|000062b0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062c0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062d0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062e0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|000062f0| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006300| 2d 2d 2d 2d 2d 2d 0d 2f | 2f 20 54 4f 62 6a 65 63 |------./|/ TObjec|
|00006310| 74 4c 69 73 74 3a 3a 44 | 65 6c 65 74 65 41 6c 6c |tList::D|eleteAll|
|00006320| 4e 6f 54 72 69 6d 3a 20 | 0d 2f 2f 2d 2d 2d 2d 2d |NoTrim: |.//-----|
|00006330| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006340| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006350| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006360| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006370| 2d 2d 2d 2d 2d 2d 2d 2d | 2d 2d 2d 2d 2d 2d 2d 2d |--------|--------|
|00006380| 2d 2d 2d 0d 76 6f 69 64 | 20 54 4f 62 6a 65 63 74 |---.void| TObject|
|00006390| 4c 69 73 74 3a 3a 44 65 | 6c 65 74 65 41 6c 6c 4e |List::De|leteAllN|
|000063a0| 6f 54 72 69 6d 28 29 0d | 09 7b 0d 09 41 53 53 45 |oTrim().|.{..ASSE|
|000063b0| 52 54 28 66 4e 75 6d 4c | 6f 6f 70 73 20 3d 3d 20 |RT(fNumL|oops == |
|000063c0| 30 29 3b 0d 0d 09 2f 2f | 20 46 6f 72 45 61 63 68 |0);...//| ForEach|
|000063d0| 44 6f 28 54 4f 62 6a 65 | 63 74 3a 3a 6f 70 65 72 |Do(TObje|ct::oper|
|000063e0| 61 74 6f 72 20 64 65 6c | 65 74 65 29 3b 0d 09 09 |ator del|ete);...|
|000063f0| 7b 0d 09 09 46 4f 52 45 | 41 43 48 4f 42 4a 45 43 |{...FORE|ACHOBJEC|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.